温馨提示×

c++中unordered_map排序的方法是什么

c++
小亿
286
2023-12-21 23:30:48
栏目: 编程语言

在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容器。

0