vector<vector<int>>遍历
时间: 2023-06-06 21:05:27 浏览: 97
可以使用双重循环遍历vector<vector<int>>中的元素,如下所示:
```c++
vector<vector<int>> vec2d;
// 添加一些元素
vec2d.push_back(vector<int>{1, 2, 3});
vec2d.push_back(vector<int>{4, 5, 6});
vec2d.push_back(vector<int>{7, 8, 9});
// 遍历二维向量
for (auto row : vec2d) {
for (auto col : row) {
cout << col << " ";
}
cout << endl;
}
```
这段代码会输出:
```
1 2 3
4 5 6
7 8 9
```
希望这个回答能够帮到您!
相关问题
C++遍历vector<vector<int>>数组
在C++中,遍历二维向量`std::vector<std::vector<int>>`通常有两种方式:嵌套循环或者利用范围for循环。
1. **嵌套循环**:
```cpp
std::vector<std::vector<int>> matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
// 使用两个嵌套循环遍历
for (int i = 0; i < matrix.size(); ++i) {
for (int j = 0; j < matrix[i].size(); ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << "\n"; // 每行结束后换行
}
```
2. **范围for循环**:
从C++11开始,你可以使用范围for循环,但这只适用于支持迭代器的容器。对于二维向量,需要先获取内部向量的起始和结束迭代器:
```cpp
for (const auto& row : matrix) {
for (int element : row) {
std::cout << element << " ";
}
std::cout << "\n";
}
```
这里假设`row`是`matrix`中的每个元素,即一个一维向量。
vector<vector<int>>的遍历
可以使用两层循环遍历vector<vector<int>>中的元素,如下所示:
```c++
vector<vector<int>> vec{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < vec.size(); i++) {
for (int j = 0; j < vec[i].size(); j++) {
// 访问vec[i][j]
cout << vec[i][j] << " ";
}
cout << endl;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
其中,外层循环遍历vector<vector<int>>中的每个vector<int>,内层循环遍历当前vector<int>中的每个元素。可以使用下标访问vec[i][j]来获取元素的值。
阅读全文