您的位置:首页 > 编程语言 > C语言/C++

c++中map和unordered_map区别

2016-03-24 10:02 483 查看
简单的说,map做插入后是有序的,按照关键字key排序,unordered_map是无序的, 顺序是插入的时候的顺序,但是unordered_map执行效率要比map高很多,所以推荐用unordered_map,下面是测试代码:

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
using namespace std;

int main()
{
unordered_map<string, int> m;
m.insert(make_pair("test5", 20));
m.insert(make_pair("test2", 25));
m.insert(make_pair("test1", 22));
m.insert(make_pair("test3", 22));
m.insert(make_pair("test4", 23));
for (auto iter = m.begin(); iter != m.end(); iter++)
{
cout << iter->first<< "\t" << iter->second << endl;
}
return 0;
}

上面是unordered_map输出:



map:

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
using namespace std;

int main()
{
map<string, int> m;
m.insert(make_pair("test5", 20));
m.insert(make_pair("test2", 25));
m.insert(make_pair("test1", 22));
m.insert(make_pair("test3", 22));
m.insert(make_pair("test4", 23));
for (auto iter = m.begin(); iter != m.end(); iter++)
{
cout << iter->first<< "\t" << iter->second << endl;
}
return 0;
}

输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: