multimap 通过key获取values
时间: 2024-05-06 07:16:14 浏览: 122
C++multimap介绍及详细使用示例(源代码)
在multimap中,一个key可以对应多个values,因此使用multimap的find函数只能返回一个iterator,如果想要获取所有的values,则需要使用equal_range函数来返回一个pair对象,其中pair的第一个元素是指向第一个匹配key的iterator,第二个元素是指向最后一个匹配key的iterator的下一个位置。通过遍历这个区间,即可获取所有的values。
以下是一个示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> myMap;
myMap.insert(std::make_pair(1, "value1"));
myMap.insert(std::make_pair(2, "value2"));
myMap.insert(std::make_pair(2, "value3"));
myMap.insert(std::make_pair(3, "value4"));
int key = 2;
auto range = myMap.equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
std::cout << "key: " << it->first << ", value: " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
key: 2, value: value2
key: 2, value: value3
```
阅读全文