vector的二维数组
时间: 2025-02-09 21:13:18 浏览: 40
### C++ 中 `vector` 二维数组的创建与操作
#### 创建二维向量
为了创建一个具有特定大小的二维向量,在定义时可以直接指定其尺寸。下面的例子展示了如何声明并初始化一个拥有固定行列数量的二维整型向量:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义函数来展示创建过程
void createVectorExample() {
int rows = 3;
int cols = 4;
// 初始化一个含有 'rows' 行和每行有 'cols' 列元素值都为0 的二维向量
vector<vector<int>> matrix(rows, vector<int>(cols, 0));
}
```
这段代码片段说明了怎样利用构造参数设置初始容量以及默认填充值[^1]。
#### 访问和修改元素
一旦建立了这样的结构体之后,就可以像访问常规多维数组那样轻松地读取或更改其中的数据项。这里给出一段简单的例子用于演示这一功能:
```cpp
for (size_t i = 0; i < matrix.size(); ++i) { // 遍历每一行
for (size_t j = 0; j < matrix[i].size(); ++j){ // 对当前行中的每一个位置执行循环
cin >> matrix[i][j]; // 输入新数值到对应的位置上
}
}
// 或者更简洁的方式使用范围基迭代器遍历整个矩阵
for(auto& row : matrix){
for(auto& elem : row){
cout << '[' << elem << ']';
}
cout << endl;
}
```
上述程序段提供了两种不同的方式来进行遍历:一种是指定索引的方法;另一种则是采用增强版for语句配合引用运算符(`&`)实现自动解包容器内的对象[^2]。
#### 获取维度信息
当处理动态分配内存的情况时,可能需要查询已知变量的实际规模。对于标准模板库(STL)`vector`而言,可以通过调用成员函数`.size()`分别得到外层和内层数组各自的长度:
```cpp
int getDimensions(const vector<vector<int>>& vec) {
int rowCount = static_cast<int>(vec.size()); // 获得总共有多少行
if(rowCount > 0){
int colCount = static_cast<int>(vec.front().size());// 假设所有内部向量具有一致宽度,则任选一行测量即可得知列宽
return rowCount * colCount;
}else{
return 0;
}
}
```
此部分解释了如何计算给定二维向量所含有的单元格总数,并假设各子列表保持相同的长度[^3]。
阅读全文
相关推荐


















