以下是一个简单的C++程序,该程序接受一个二维数组并将其按列的顺序存储到一个一维数组中:
```cpp
#include
#include
int main() {
// 定义并初始化二维数组
const int rows = 3;
const int cols = 4;
int twoDimArray[rows][cols] = {
{11, 22, 33, 44},
{11, 22, 33, 44},
{11, 22, 33, 44}
};
// 创建一个足够大的一维数组来存储按列展开后的数据
std::vector oneDimArray(rows * cols);
// 遍历二维数组,并将元素按列存储到一维数组中
for (int j = 0; j < cols; ++j) { // 遍历列
for (int i = 0; i < rows; ++i) { // 遍历行
oneDimArray[i * cols + j] = twoDimArray[i][j]; // 按列顺序存储
}
}
// 输出一维数组中的元素
for (const auto& elem : oneDimArray) {
std::cout << elem << " ";
}
return 0;
}
```
在这个程序中,我们首先定义了一个3x4的二维数组,并初始化了它的值。然后,我们创建了一个大小为`rows * cols`的一维`vector`,这个`vector`会用来存储按列展开后的元素。
接着,我们使用两个嵌套的循环来遍历二维数组,外层循环遍历列,内层循环遍历行。在每次内层循环中,我们根据当前的行和列索引计算出一维数组中的位置,并将二维数组中的元素存储到对应位置。
最后,我们使用一个循环来遍历并输出一维数组中的元素。
当运行这个程序时,它将输出:
```
11 11 11 22 22 22 33 33 33 44 44 44
```
这就是你所期望的一维数组中的元素顺序。