如何将二维数组转化成一维数组 C++
时间: 2024-12-20 11:30:54 浏览: 5
077李媛7
在C++中,将二维数组转换为一维数组通常涉及到深度复制或者扁平化的过程。你可以通过遍历二维数组并逐个添加元素到新的一维数组中来实现。这里是一个简单的示例:
```cpp
#include <vector>
std::vector<int> flatten(const std::vector<std::vector<int>>& two_dim_array) {
std::vector<int> one_dim_array;
for (const auto& row : two_dim_array) {
one_dim_array.insert(one_dim_array.end(), row.begin(), row.end());
}
return one_dim_array;
}
```
在这个例子中,`flatten`函数接受一个二维整数向量`two_dim_array`作为输入,它创建了一个新的`one_dim_array`来存储转换后的数据。使用`insert`函数将每行元素追加到一维数组的末尾。
如果你有一个静态大小的二维数组`int arr[n][m]`,也可以这样做:
```cpp
std::vector<int> flatten(int n, int m, int(&arr)[n][m]) {
std::vector<int> one_dim(n * m);
int index = 0;
for (int i = 0; i < n; ++i)
for (int j = 0; j < m; ++j)
one_dim[index++] = arr[i][j];
return one_dim;
}
```
这里假设数组的大小在运行时已知。
阅读全文