0

我想将二维数组插入另一个二维数组 - 两者都是整数。第一个小于第二个,则没有大小误差。例如,较大的有数据到它自己的中间,而第二部分没有数据。我想在这些数据的中间插入第二个数组,以便我需要将更大的数据下推,这意味着将非零部分复制到零数据上。如果有人能以最有效的方式提供相关代码,我们将不胜感激。例如:

int A[4][2] = {{1, 2} , {3, 4} , { 0, 0} , {0, 0} };
int B[2][2] = {{5, 6} , {7, 8}};

我想将 B 插入 A (在第一行和第二行之间)并将第二行向下推到第三行。然后我们有:

 int A[4][2] = {{1, 2} ,{5, 6} , {7, 8} , {3, 4} };

我想在不使用嵌套循环的情况下做到这一点。

4

1 回答 1

2

C++ 中的数组是固定大小的——因此无法将数据“下推”到数组中,从而改变其大小。您只能复制内容,覆盖(部分)目标数组,但使其大小保持不变。

如果你想这样做,你需要使用std::vector允许改变大小的东西(比如),或者创建一个所需大小的新数组并将数据复制到其中:

int C[6][2];
std::copy(A, A+2, C);
std::copy(B, B+2, C+2);
std::copy(A+2, A+4, C+4);
于 2013-08-07T17:27:12.887 回答