map 插入 两个 键值相等的值 怎么排序
时间: 2024-01-25 11:03:03 浏览: 32
在 C++ STL 中,map 是按照键值进行排序的,如果插入两个键值相等的值,那么后插入的值会覆盖先插入的值。如果你希望保留所有的键值,可以考虑使用 multimap。multimap 允许插入多个键值相等的值,并按照键值进行排序。以下是插入和排序的示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::multimap<int, int> myMap;
myMap.insert({1, 10});
myMap.insert({2, 20});
myMap.insert({3, 30});
myMap.insert({2, 25}); // 插入相等的键值
// 遍历 multimap
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
return 0;
}
```
输出结果如下:
```
Key: 1, Value: 10
Key: 2, Value: 20
Key: 2, Value: 25
Key: 3, Value: 30
```
可以看到,multimap 按照键值进行了排序,并且保留了所有的键值。