C++(11):unordered_map

C++11提供了效率更高的unordered_map,他将key做了hash后,以无序的方式对数据进行存储,而之前的map是以红黑树的方式对key排序后进行存储的。

unordered_map的特点是查找单个key的速度非常快,且是O(1)的,但是查找一定范围内的key就会比map要慢。

其操作与map基本上一样:

#include <iostream>
#include <unordered_map>
using namespace std;

int main()
{
    unordered_map<int, string> m_map = {
   {100, "bye"}, {50, "great"}};    //通过初始化列表初始化
    m_map.insert(pair<int, string>(1, "hello"));    //通过insert进行插入
    m_map[8] = "world";                              //通过[]运算符进行插入
    m_map.emplace(10, "hi");                         //通过emplace进行插入,可以防止中间临时对象的产生

    cout<<"size:"<<m_map.size()<<endl;               //通过size读取当前容器中的元素个数

    for(auto& item : m_map)                          //通过for进行遍历
    {
        cout <

版权声明:本文为jiemashizhen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。