如何遍历unordered_multimap中相同键的多个元素?
时间: 2024-04-07 10:33:22 浏览: 200
HashMaps
要遍历 `unordered_multimap` 中相同键的多个元素,可以使用迭代器来完成。首先,使用 `equal_range` 函数来获取给定键的迭代器范围。然后,使用循环来遍历该范围内的所有元素。
以下是示例代码:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_multimap<int, std::string> myMap;
myMap.insert(std::make_pair(1, "apple"));
myMap.insert(std::make_pair(2, "banana"));
myMap.insert(std::make_pair(1, "orange"));
myMap.insert(std::make_pair(3, "grape"));
myMap.insert(std::make_pair(1, "melon"));
int key = 1;
auto range = myMap.equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
std::cout << it->second << std::endl;
}
return 0;
}
```
在上面的示例中,我们创建了一个 `unordered_multimap` 并插入了一些键值对。然后,我们选择键为 1 的元素,并使用 `equal_range` 函数获取迭代器范围。最后,我们使用循环打印了所有与键 1 相关联的值。
输出将是:
```
apple
orange
melon
```
这样,你就可以遍历 `unordered_multimap` 中相同键的多个元素了。
阅读全文