c++怎么将二维数组的元素由一行一行变成一列一列输出
时间: 2024-12-12 13:28:38 浏览: 5
在C++中,如果你想将二维数组的元素按行转换成列输出,你可以遍历每一行,然后逐个插入到一个新的一维向量或数组中。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
void transpose(const int arr[][3], int rows, int cols, std::vector<int>& result) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
result.push_back(arr[i][j]); // 将当前行的元素添加到结果中
}
}
}
int main() {
const int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int rows = sizeof(matrix) / sizeof(matrix[0]);
int cols = sizeof(matrix[0]) / sizeof(matrix[0][0]);
std::vector<int> transposed;
transpose(matrix, rows, cols, transposed);
// 输出转置后的元素
for (const auto& element : transposed) {
std::cout << element << " ";
}
return 0;
}
```
在这个例子中,我们首先定义了一个`transpose`函数,它接收二维数组、行数和列数以及一个空的一维向量。函数内部使用两层循环,外层循环遍历行,内层循环遍历列。每次迭代,我们将元素添加到`result`向量中。
运行这个程序,你会看到一列一列的元素被打印出来。如:1 4 7 2 5 8 3 6 9.
阅读全文