unordered_multimap迭代
时间: 2023-06-21 22:17:26 浏览: 97
`unordered_multimap`是不保证元素顺序的容器,因此使用迭代器遍历元素时不一定能够按照插入顺序遍历,但可以保证元素不会重复。要使用迭代器遍历`unordered_multimap`中的元素,可以使用以下方法:
```c++
unordered_multimap<int, string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 使用 auto 关键字定义迭代器类型
for (auto it = umap.begin(); it != umap.end(); ++it) {
cout << it->first << ": " << it->second << endl;
}
```
这里使用`auto`关键字定义迭代器类型,可以自动推导出正确的类型。`begin()`函数返回指向第一个元素的迭代器,`end()`函数返回指向最后一个元素之后的迭代器。在遍历时,需要使用`++`运算符将迭代器指向下一个元素。
如果需要逆序遍历`unordered_multimap`中的元素,则可以使用`rbegin()`和`rend()`函数:
```c++
for (auto it = umap.rbegin(); it != umap.rend(); ++it) {
cout << it->first << ": " << it->second << endl;
}
```
这里的`rbegin()`函数返回指向最后一个元素的反向迭代器,`rend()`函数返回指向第一个元素之前的反向迭代器。需要使用反向迭代器遍历时,同样需要使用`++`运算符将迭代器指向前一个元素。
阅读全文