C++将一个行优先二维数组存储的矩阵转换为一个一维数组
时间: 2024-04-11 17:27:06 浏览: 210
要将一个行优先的二维数组存储的矩阵转换为一个一维数组,你可以使用循环将每个元素按行顺序存储到一维数组中。
以下是一个示例代码,展示如何实现这个转换:
```cpp
#include <iostream>
#include <vector>
std::vector<int> flattenMatrix(const std::vector<std::vector<int>>& matrix) {
std::vector<int> flattened;
int rows = matrix.size();
int cols = matrix[0].size();
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
flattened.push_back(matrix[i][j]);
}
}
return flattened;
}
int main() {
std::vector<std::vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
std::vector<int> flattened = flattenMatrix(matrix);
// 输出转换后的一维数组
for (const auto& element : flattened) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个 `flattenMatrix()` 函数,该函数接受一个行优先的二维整数向量 `matrix` 作为输入,并返回一个一维整数向量表示的矩阵。
在 `flattenMatrix()` 函数中,我们首先获取矩阵的行数和列数。然后,使用两个嵌套的循环遍历每个元素,并将它们按行顺序添加到一维向量 `flattened` 中。
在 `main()` 函数中,我们定义了一个示例二维矩阵 `matrix`,并调用 `flattenMatrix()` 函数将其转换为一维向量。然后,我们遍历一维向量并打印出每个元素。
记得在使用这段代码时,要包含 `<iostream>` 和 `<vector>` 头文件。
阅读全文