读取数组2维的另一种方式c++
read array 2 dimensions in another way C++
读取数组输入后:
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
也就是说,首先读取二维数组的所有第一个元素。
我怎样才能做到这一点?
把你的i
和j
循环交换一下。
你所需要做的就是颠倒循环的顺序:
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];
}
for(int i=0; i<3; i++)
for(int j=0; j<2; j++)
{
allElements[counter++] = (int)inputs[j][i];
}
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 在c代码之间共享数据的最佳方式
- 在C++中将函数压缩为两种方式
- 以螺旋方式打印矩阵的程序.(工作不好)
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 创建引用向量的优雅方式
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 不同/较旧的处理器运行c++代码的方式是否不同
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 重载方法的方式会在使用临时调用时生成编译器错误
- 在reactor中存储eventHandlers的最佳方式是什么
- 如何以优化的方式同时迭代两个间距不相等的数组
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 为什么C++有不同的变量初始化方式?
- 在AVX通道中混洗的最佳方式
- 如何重新定义MPI_FLOAT,MPI_DOUBLE以 typedef 的方式
- 如何以静态代码分析友好的方式使用 #define 防护?
- 以迭代方式合并标准::unordered_map