c++vector嵌套
时间: 2024-09-01 22:01:35 浏览: 72
在C++中,`std::vector`是一种动态数组容器,它允许你在运行时添加、删除和访问元素。如果需要嵌套`vector`s,也就是创建一个包含其他`vector`的`vector`,可以这样做:
```cpp
#include <vector>
// 定义一个二维向量,每行是一个一维向量
std::vector<std::vector<int>> nestedVector;
// 创建并初始化二维向量
nestedVector.resize(3); // 初始大小为3行
for (int i = 0; i < 3; ++i) {
nestedVector[i].resize(4); // 每行初始大小为4
for (int j = 0; j < 4; ++j) {
nestedVector[i][j] = i * 10 + j; // 填充一些示例值
}
}
// 访问和操作嵌套向量
int element = nestedVector[1][2]; // 获取第2行第3列的元素
nestedVector[0].push_back(5); // 向第一行添加新的元素
相关问题
c++嵌套vector
嵌套的vector是指vector中的每个元素也是一个vector类型的对象。要向嵌套的vector中添加元素,需要先创建内层的vector对象,然后将其添加到外层的vector对象中。例如,如果我们有一个嵌套的vector对象M=[[1 2 3], [4 5 6]],我们可以按照以下方式添加元素:
```c++
vector<vector<int>> M; // 外层vector对象M
vector<int> N; // 内层vector对象N
N.push_back(1);
N.push_back(2);
N.push_back(3);
M.push_back(N); // 将N添加到M中
N.clear(); // 清空N中的元素
N.push_back(4);
N.push_back(5);
N.push_back(6);
M.push_back(N); // 将N添加到M中
```
要访问嵌套的vector中的元素,可以使用类似于二维数组的方式访问。例如,要访问M中的第一个vector对象的第一个元素,可以使用M,其值为1。
C++如何同时遍历两个vector嵌套vector
可以使用双重循环来遍历两个嵌套的vector,例如:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> v1{{1, 2, 3}, {4, 5, 6}};
vector<vector<int>> v2{{7, 8, 9}, {10, 11, 12}};
for (int i = 0; i < v1.size(); i++) {
for (int j = 0; j < v1[i].size(); j++) {
cout << v1[i][j] << " ";
}
for (int j = 0; j < v2[i].size(); j++) {
cout << v2[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
上面的代码演示了同时遍历两个嵌套的vector,输出结果为:
```
1 2 3 7 8 9
4 5 6 10 11 12
```
注:上面的代码假设两个嵌套的vector的大小相同。如果大小不同需要进行额外的处理。
阅读全文