如何用迭代器访问到unordermap的一个元素后,再访问其后一个元素
时间: 2023-05-19 20:05:59 浏览: 44
可以使用++运算符来访问下一个元素,示例代码如下:
```c++
unordered_map<int, string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
unordered_map<int, string>::iterator it = myMap.begin();
while (it != myMap.end()) {
cout << it->second << endl;
++it;
}
```
在上面的代码中,我们使用迭代器it来遍历unordered_map myMap中的所有元素,通过it->second来访问元素的值。在每次循环中,我们使用++it来访问下一个元素。
相关问题
C++迭代器访问第二个元素至最后一个元素
要访问 C++ 容器中第二个元素至最后一个元素,可以使用迭代器来实现。下面是一个示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}};
auto it = myMap.begin(); // 获取指向第一个元素的迭代器
++it; // 移动迭代器到第二个元素
for (; it != myMap.end(); ++it) {
std::cout << it->first << " => " << it->second << '\n';
}
return 0;
}
```
在这个示例中,我们使用了 `std::map` 容器,并初始化了一个包含四个键值对的 `myMap`。我们首先获取指向第一个元素的迭代器,然后通过 `++it` 来将迭代器移动到第二个元素。
接下来,我们使用循环遍历从第二个元素到最后一个元素的范围,并打印每个元素的键和值。
输出结果将是:
```
2 => two
3 => three
4 => four
```
这样就实现了访问第二个元素至最后一个元素的操作。
判断迭代器是否到最后一个元素
可以使用迭代器的end()函数来判断迭代器是否到最后一个元素。如果迭代器等于end()函数返回的迭代器,则表示已经到达最后一个元素。例如:
```
vector<int> vec = {1, 2, 3};
auto it = vec.begin();
while (it != vec.end()) {
// 遍历元素
++it;
}
if (it == vec.end()) {
// 已经到达最后一个元素
}
```