介绍一下map,unordered_map
时间: 2023-11-24 10:52:38 浏览: 86
map和unordered_map都是C++ STL中的关联容器,它们都可以用来存储键值对。其中,map底层使用红黑树实现,可以保证元素有序,而unordered_map底层使用哈希表实现,可以实现快速查找,但是元素无序。
map和unordered_map的区别主要在以下几个方面:
1. 底层实现不同:map使用红黑树,unordered_map使用哈希表。
2. 元素顺序不同:map中的元素是按照键值从小到大排序的,而unordered_map中的元素是无序的。
3. 查找效率不同:map的查找效率为O(log n),而unordered_map的查找效率为O(1)。
4. 内存占用不同:由于哈希表的实现需要考虑哈希冲突等问题,因此unordered_map的内存占用通常比map要高。
下面是一个使用map和unordered_map的例子:
```c++
#include <iostream>
#include <map>
#include <unordered_map>
using namespace std;
int main() {
// 使用map存储键值对
map<string, int> m;
m["apple"] = 1;
m["banana"] = 2;
m["orange"] = 3;
for (auto it = m.begin(); it != m.end(); ++it) {
cout << it->first << " " << it->second << endl;
}
// 使用unordered_map存储键值对
unordered_map<string, int> um;
um["apple"] = 1;
um["banana"] = 2;
um["orange"] = 3;
for (auto it = um.begin(); it != um.end(); ++it) {
cout << it->first << " " << it->second << endl;
}
return 0;
}
```
阅读全文