如何用vector函数输入一个二维数组
时间: 2024-12-19 08:21:43 浏览: 8
在C++中,虽然vector本身并不是设计用来直接表示二维数组的,但你可以通过嵌套vector的方式来模拟一个二维数组。下面是一个例子:
```cpp
#include <vector>
// 定义二维vector,每行是一个vector,代表一列
std::vector<std::vector<int>> matrix;
// 输入二维数组
void inputMatrix(int rows, int cols) {
for (int i = 0; i < rows; ++i) {
std::vector<int> row(cols);
// 用户循环输入每一行的元素
for (int j = 0; j < cols; ++j) {
std::cout << "Enter element at row " << i + 1 << ", column " << j + 1 << ": ";
std::cin >> row[j];
}
matrix.push_back(row); // 将一行元素压入二维vector中
}
}
int main() {
int rows, cols;
std::cout << "Enter number of rows and columns: ";
std::cin >> rows >> cols;
inputMatrix(rows, cols);
// 现在matrix就是你想要的二维数组了
for (const auto &row : matrix) {
for (int element : row) {
std::cout << element << " ";
}
std::cout << "\n";
}
return 0;
}
```
在这个示例中,用户会被提示输入矩阵的行数和列数,然后逐个输入每一行的元素,最后得到一个二维vector结构。注意,这种方式并不像静态数组那样高效,因为每次插入新行都会增加整个vector的内存开销。
**相关问题--:**
1. 如何从这个二维vector中提取特定行或列?
2. 这种方式相较于数组,有什么性能上的考虑?
3. 有没有更高效的存储二维数据的方式?
阅读全文