如何将2D数组拆分为小块的2D数组

时间:2019-03-28 06:44:27

标签: c++ arrays multidimensional-array

给出2D数组[6] [4],如何将其重复拆分为2D数组[3] [3]的小块,覆盖所有+1 x和y增量?

数组

~~~~~~
~.=..~
~...=~
~~~~~~

目标(在第一次拆分后向右移动):

(第一次拆分)

~~~
~.=
~..

(第二次拆分)

~~~
.=.
...

目标(在第一次拆分后将一个方向向下移动):

(第一次拆分)

~~~
~.=
~..

(第二次拆分)

~.=
~..
~~~

里程碑:进入array [3] [3],与另一个array2 [3] [3]进行检查,如果不匹配,则向右递增1(如果到达最后一列的末尾,则向下递增1),替换一组新的array [3] [3],然后重复比较

1 个答案:

答案 0 :(得分:0)

您可以从此演示中获得一些想法。 Probelm demo

伪代码:

int block[4][4] =
{
    { 0,1,0,0 },
    { 1,1,1,0 },
    { 0,0,0,0 },
    { 1,1,0,0 }
};

int block1[2][2];
int block2[2][2];
int block3[2][2];
int block4[2][2];

for (int i = 0; i < 2; i++)
{
    for (int j = 0; j < 2; j++)
    {
        block1[i][j] = block[i][j];
        block2[i][j] = block[i][j+2];
        block3[i][j] = block[i+2][j];
        block4[i][j] = block[i+2][j+2];
    }
}