首先,map和unordered_map中在插入时一个key只能对应一个value,map的底层实现是红黑树,且key顺序是有序的,unordered_map的底层实现是hash。
简单试一下map:
map<int, int> oMp;
oMp[1] = 112;
oMp[3] = 2;
oMp[2] = 22;
oMp[5] = 12;
oMp[2] = 11;
for (auto e : oMp) {
cout << "key: "<< e.first << " value: "<<e.second << endl;
}
输出为:
key: 1 value: 112
key: 2 value: 11
key: 3 value: 2
key: 5 value: 12
可见2的value已经改变,同时迭代输出的key是有序的。同样再来试一下unordered_map:
unordered_map<int, int> oMp;
oMp[1] = 112;
oMp[3] = 2;
oMp[2] = 22;
oMp[5] = 12;
oMp[2] = 11;
for (auto e : oMp) {