在C++中,unordered_map是一个无序容器,不支持直接排序。但是可以通过将unordered_map中的元素复制到其他有序容器(如vector或map)中,然后对该容器进行排序。以下是一个示例:
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
int main() {
std::unordered_map<int, std::string> myMap;
myMap.insert({3, "Apple"});
myMap.insert({1, "Banana"});
myMap.insert({2, "Orange"});
// 将unordered_map的元素复制到vector中
std::vector<std::pair<int, std::string>> vec(myMap.begin(), myMap.end());
// 对vector进行排序
std::sort(vec.begin(), vec.end());
// 输出排序后的结果
for (const auto& pair : vec) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
输出结果将按照键的升序进行排序:
1: Banana
2: Orange
3: Apple
请注意,unordered_map是基于哈希表实现的,对于无序容器而言,排序是不符合其设计目的的。如果需要有序的键值对存储,可以考虑使用map容器。