vector<vector<int>>迭代器遍历
时间: 2023-06-06 10:05:28 浏览: 82
可以使用双重循环遍历vector<vector<int>>,例如:
```
vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (auto row : matrix) {
for (auto elem : row) {
cout << elem << " ";
}
cout << endl;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
相关问题
迭代器遍历vector<pair<int,int>>
你可以使用迭代器来遍历一个存有`pair<int, int>`类型元素的`vector`。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<std::pair<int, int>> myVector = {{1, 2}, {3, 4}, {5, 6}};
// 使用迭代器遍历vector
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << "First: " << it->first << ", Second: " << it->second << std::endl;
}
return 0;
}
```
这段代码中,我们创建了一个`vector`,其中包含了几个`pair<int, int>`类型的元素。然后,我们使用迭代器`begin()`和`end()`来遍历该`vector`,并输出每个元素的第一个和第二个值。
运行这段代码,你将得到如下输出:
```
First: 1, Second: 2
First: 3, Second: 4
First: 5, Second: 6
```
希望这能帮助到你!如有其他问题,请随时提问。
vector<pair<int, int>>segs 在遍历以上数据类型时如何使用索引遍历
在 C++ 中,当你有一个 `vector<pair<int, int>> segs` 类型的向量,它是包含整数对 `(int, int)` 的有序集合,用于表示区间。这里的每个 pair 对代表了一个区间,第一个元素(`int first`)通常代表开始值,第二个元素(`int second`)代表结束值。
遍历这种类型的向量时,你需要考虑到 pair 对,而不是简单的整数索引。你可以按照以下步骤操作:
1. 遍历整个向量:使用迭代器 `std::vector<pair<int, int>>::iterator it` 或者直接使用范围 for 循环,例如:
```cpp
for (const auto& seg : segs) {
// 这里访问的是 pair,比如 seg.first 和 seg.second
}
```
2. 指定区间索引:如果你想根据区间的位置来处理,可以先找出每个区间的索引,但是 pair 内部并不像数组那样有固定的索引,所以这通常是间接的,比如基于插入顺序:
```cpp
for (size_t i = 0; i < segs.size(); ++i) {
const auto seg = segs[i];
// i 就是对原数组的索引,seg 对应的是区间内容
}
```
3. 访问区间元素:如果你想访问某个特定区间的开始和结束值,可以使用下标运算符 `[]`,但由于 pair 不支持传统意义上的下标,需要两次:
```cpp
for (auto& seg : segs) {
int start = seg.first;
int end = seg.second;
// ...
}
```
请注意,由于 C++ 标准库并没有直接提供对 pair 的索引访问,上述操作主要是为了说明如何间接获取对应元素,而非真正的索引访问。在实际应用中,`pair<int, int>` 更多地作为结构体看待,而不是作为数组或列表处理。
阅读全文