将输入读取到数组后:
std::vector<unsigned char *> inputs(elements);"inputs“是一个二维数组:inputs[3][2],然后读出这个数组,值是:
inputs[0][0]=1
inputs[0][1]=2
inputs[1][0]=3
inputs[1][1]=4
inputs[2][0]=5
inputs[2][1]=6我想把这个二维数组读成一维数组:
int counter=0;
int * allElements = new int[6];
for(int i=0; i<3; i++)
for(int j=0; j<2; j++)
{
allElements[counter++] = (int)inputs[i][j];
}这是一种将所有元素读入一维数组的传统方法,我相信如果我以这种方式读取"allElements“的元素:
for(int i=0; i<6; i++)
printf("%d ", allElements[i]);它应该是:1 2 3 4 5 6
然而,我想把二维数组的所有元素读到一维数组中,这样当我这样做的时候:
for(int i=0; i<6; i++)
printf("%d ", allElements[i]);应该是:1 3 5 2 4 6
也就是说,首先读取二维数组的所有前几个元素。
我怎样才能做到这一点呢?
发布于 2011-11-15 06:30:23
你需要做的就是颠倒循环的顺序:
int counter=0;
int * allElements = new int[6];
for(int j=0; j<2; j++)
for(int i=0; i<3; i++)
{
allElements[counter++] = (int)inputs[i][j];
}这应该能起到作用。
发布于 2011-11-15 06:28:13
只需交换i和j循环即可。
发布于 2011-11-15 06:28:42
for(int i=0; i<3; i++)
for(int j=0; j<2; j++)
{
allElements[counter++] = (int)inputs[j][i];
}https://stackoverflow.com/questions/8129084
复制相似问题