我是 C++ 新手。
给定一个二维数组定义为:
boolean myArray[3][8];
我想打乱第一维元素中的单元格,例如,myArray[2][.......]
被复制到 myArray[2][........]
。
我通常会使用复制每个单元格的嵌套循环迭代数组。有一个更好的方法吗?换句话说,有没有一种方法可以使用某种单一命令将二维数组的单个维度复制到该数组的另一部分?
最佳答案
In this example该程序声明了以下 2D int 数组(而不是 bool):
3 5 7 9 11 13 15 17
8 7 6 5 4 3 2 1
2 4 6 8 10 12 14 16
并演示了如何在第一个和最后一个索引之间切换数据:
#include <stdio.h>
#include <string.h>
int main()
{
int myArray[3][8] =
{
{ 3, 5, 7, 9, 11, 13, 15, 17 },
{ 8, 7, 6, 5, 4, 3, 2, 1 },
{ 2, 4, 6, 8, 10, 12, 14, 16 }
};
// Copy data from index 2 to index 0
int bkup[8] = { 0 };
memcpy(bkup, myArray[0], sizeof(myArray[0]));
memcpy(myArray[0], myArray[2], sizeof(myArray[2]));
memcpy(myArray[2], bkup, sizeof(bkup));
// Print array content to the screen
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 8; j++)
printf("%d ", myArray[i][j]);
printf("\n");
}
return 0;
}
输出:
2 4 6 8 10 12 14 16
8 7 6 5 4 3 2 1
3 5 7 9 11 13 15 17
关于c++ - 将二维数组的 1 维复制到同一数组的另一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27760527/