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 << item.first << ":" &l