c++中vector装vector
时间: 2025-04-21 19:43:59 浏览: 19
### 创建和使用 C++ 中的嵌套向量
在 C++ 中,可以轻松创建 `vector` 的 `vector` 来表示二维数组或其他多维结构。下面展示了如何声明、初始化以及操作这种类型的对象。
#### 声明与初始化
要定义一个包含其他 `vector<int>` 类型元素的新 `vector<vector<int>>` 变量,语法如下所示:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<std::vector<int>> matrix;
// 初始化为 3 行 4 列全零矩阵
int rows = 3;
int cols = 4;
matrix.resize(rows, std::vector<int>(cols, 0));
}
```
这段代码首先包含了必要的头文件 `<vector>`, 接着通过调用成员函数 `resize()` 设置外部 `vector` 大小并指定内部每个子 `vector` 的初始长度及其默认填充值[^1]。
#### 访问元素
一旦有了这样的结构体之后就可以像访问常规的一维 `vector` 那样来读取或修改其中的数据项了:
```cpp
// 修改特定位置上的数值 (假设已经按照上述方式设置了matrix)
if (!matrix.empty()) { // 检查是否为空以防越界错误
matrix[0][2] = 7; // 将第一行第三列设置成7
}
for(size_t i = 0 ;i<matrix.size();++i){
for(size_t j=0;j<matrix[i].size();++j){
std::cout << matrix[i][j]<<" ";
}
std::cout<<"\n";
}
```
这里需要注意的是,在实际编程实践中应当始终先验证索引的有效性以防止潜在的风险如缓冲区溢出等问题发生[^2]。
#### 动态调整大小
由于 `std::vector` 支持动态增长特性,因此也可以根据需求随时改变其尺寸而不必担心内存管理方面的问题;对于内层 `vector` 同理适用:
```cpp
// 添加新行到现有表格后面
matrix.push_back(std::vector<int>{1, 2});
// 移除最后一行
if(!matrix.empty()){
matrix.pop_back();
}
```
以上就是关于怎样构建及运用 C++ 下基于标准模板库实现的双重矢量的一些基本介绍[^3]。
阅读全文
相关推荐
















