c++中vector创建二维数组
时间: 2025-06-05 18:50:47 浏览: 14
### 如何在C++中使用`std::vector`创建二维数组
在C++中,可以利用标准库中的`std::vector`来实现动态大小的多维数组。对于二维数组而言,可以通过嵌套两个`std::vector`实例来完成这一目标。
以下是具体方法:
#### 方法一:通过初始化列表构建二维向量
可以直接指定每一行的内容并将其作为初始值传递给外层`std::vector`[^1]。
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<std::vector<int>> matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (const auto& row : matrix) {
for (int elem : row) {
std::cout << elem << " ";
}
std::cout << "\n";
}
return 0;
}
```
上述代码展示了如何定义一个3×3矩阵,并逐行列举其元素。
#### 方法二:预先分配空间
如果已知所需维度,则可先设置好容量再赋值。这有助于提高性能以及减少内存重新分配次数[^1]。
```cpp
#include <iostream>
#include <vector>
int main() {
size_t rows = 3, cols = 4;
// 创建具有固定尺寸的二维向量,默认填充为零
std::vector<std::vector<int>> matrix(rows, std::vector<int>(cols, 0));
// 填充数据到matrix
int val = 1;
for(size_t i=0; i<rows; ++i){
for(size_t j=0; j<cols; ++j){
matrix[i][j] = val++;
}
}
// 打印结果
for(const auto& row : matrix){
for(int elem : row){
std::cout << elem << ' ';
}
std::cout << '\n';
}
return 0;
}
```
此版本首先声明了一个拥有特定数量行与列的空矩阵,随后逐步填充值[^1]。
#### 方法三:基于输入动态调整大小
当确切规模未知时,可以根据运行期间获得的信息灵活改变结构大小[^1]。
```cpp
#include <iostream>
#include <vector>
int main(){
int n,m;
std::cin >> n >> m;
std::vector<std::vector<int>> mat(n,std::vector<int>(m));
for(auto &row:mat){
for(auto &elem:row){
std::cin>>elem;
}
}
return 0;
}
```
这里演示了读取用户提供的参数以决定最终布局的过程[^1]。
相关问题
阅读全文
相关推荐














