Linux 拨号vps windows公众号手机端

C++哈希表怎么排序

lewis 9年前 (2016-12-12) 阅读数 10 #程序编程
文章标签 c++

在C++中,哈希表是无序的数据结构,因此无法直接对哈希表进行排序。如果需要对哈希表中的元素进行排序,可以将哈希表的元素复制到一个新的容器(如vector)中,然后对该容器进行排序。

以下是一个示例代码,演示了如何将哈希表中的元素复制到vector中并对其进行排序:

#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>

int main() {
    std::unordered_map<int, std::string> hashTable = {
        {1, "apple"},
        {3, "banana"},
        {2, "orange"}
    };

    std::vector<std::pair<int, std::string>> vec(hashTable.begin(), hashTable.end());

    // 对vector中的元素进行排序
    std::sort(vec.begin(), vec.end(), [](const std::pair<int, std::string>& a, const std::pair<int, std::string>& b) {
        return a.first < b.first;
    });

    // 打印排序后的结果
    for (const auto& pair : vec) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

在上面的示例中,首先将哈希表中的元素复制到vector中,然后使用std::sort函数对vector中的元素进行排序,最后打印排序后的结果。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门