如何在C++标准库中使用multimap的equal_range函数?
时间: 2024-12-19 09:21:39 浏览: 4
在C++标准库中,`std::multimap`是一个关联容器,它允许每个元素通过键值对存在,并且可以有多个相同的键。`equal_range`函数是`multimap`的一个成员函数,用于查找给定键值对所在区间的所有元素。
以下是使用`equal_range`的基本步骤:
```cpp
#include <map>
#include <iostream>
int main() {
// 创建一个multimap实例,假设我们存储的是字符串和整数
std::multimap<std::string, int> myMap;
// 添加一些元素
myMap.insert({"apple", 5});
myMap.insert({"banana", 7});
myMap.insert({"apple", 3}); // 同一键可以多次插入
// 使用equal_range查找键为"apple"的所有元素范围
auto range = myMap.equal_range("apple");
// 输出范围的起始和结束迭代器,这将包含所有键为"apple"的元素
for (auto it = range.first; it != range.second; ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << '\n';
}
return 0;
}
```
在这个例子中,`range.first`指向第一个键为"apple"的元素的迭代器,而`range.second`则是一个单步过去即会超出范围的迭代器。如果找不到匹配的键,则`range.first`和`range.second`将指向`end()`。
阅读全文