对于unordered_map当key是string时的使用


#include 
#include 
#include 
using namespace std;
int main()
{
    //创建空 umap 容器
    unordered_map umap;
    //向 umap 容器添加新键值对
    umap.emplace("Python教程", "http://c.biancheng.net/python/");
    umap.emplace("Java教程", "http://c.biancheng.net/java/");
    umap.emplace("Linux教程", "http://c.biancheng.net/linux/");
    //输出 umap 存储键值对的数量
    cout << "umap size = " << umap.size() << endl;
    //使用迭代器输出 umap 容器存储的所有键值对
    for (auto iter = umap.begin(); iter != umap.end(); ++iter) {
        cout << iter->first << " " << iter->second << endl;
    }
    return 0;
}

我的输出结果刚好是反的,这是为什么,请各位解答

umap size = 3
Linux教程 http://c.biancheng.net/linux/
Java教程 http://c.biancheng.net/java/
Python教程 http://c.biancheng.net/python/

unordered_map底层是哈希表,排列无序;要顺序排列用map,底层是红黑树

unordered_map是无序的

unordered_map无序,内部顺序应该不是你的输入顺序吧