vector二维数组用法
时间: 2025-04-24 16:08:22 浏览: 41
### C++ 中 `vector` 二维数组的使用方法
#### 创建二维 `vector`
创建二维 `vector` 可以通过定义一个向量,其中每个元素也是一个向量来表示每一行。下面是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
int main() {
// 定义一个大小为3×4的整型二维向量,初始值都设为0
std::vector<std::vector<int>> matrix(3, std::vector<int>(4, 0));
// 输出矩阵尺寸
std::cout << "Matrix has " << matrix.size() << " rows and "
<< (matrix.empty() ? 0 : matrix[0].size()) << " columns." << std::endl;
}
```
这段代码展示了如何声明并初始化一个具有特定行列数以及默认填充数值的二维容器[^1]。
#### 初始化与访问元素
可以指定每行的具体内容或者利用循环结构批量赋值给各个位置上的变量。这里给出了一种方式来设置所有元素相同的初值,并读取某一行中的某个具体项:
```cpp
// 设置第二行第三列为5
matrix[1][2] = 5;
// 获取第一行第一个元素
int firstElement = matrix[0][0];
```
上述片段说明了怎样修改单个数据点及其检索过程[^2]。
#### 动态调整大小
不同于固定大小的传统数组,在程序运行期间可以根据实际需求改变 `vector` 的规模而无需担心内存泄漏等问题。增加新行或扩展现有行长度的操作如下所示:
```cpp
// 添加新的一行到末尾
matrix.push_back(std::vector<int>{7, 8});
// 扩展现有最后一行至五个元素
if (!matrix.empty())
{
while(matrix.back().size() < 5)
matrix.back().push_back(-1);
}
```
此部分解释了当需要动态管理存储空间时应采取的方法。
#### 遍历整个二维 `vector`
为了逐一遍历所有的成员,通常会采用双重for循环的方式来进行遍访工作。这不仅适用于打印输出,也适合执行其他类型的迭代处理任务:
```cpp
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";
}
```
该段落介绍了有效遍历和展示所有条目的策略。
阅读全文
相关推荐


















