map和unordered_map的区别是什么?
时间: 2023-12-10 19:35:55 浏览: 88
unordered-map的使用方法.rar
map和unordered_map是C++中的两种关联容器,它们的区别主要在于内部实现方式和性能表现上的差异。
map内部是按照key排序的,因此在进行插入、查找等操作时,时间复杂度为O(log n)。而unordered_map内部使用哈希表来组织内容,因此在进行插入、查找等操作时,时间复杂度为O(1)。因此,unordered_map的执行效率要比map高很多。
另外,对于unordered_map或unordered_set容器,其遍历顺序与创建该容器时输入的顺序不一定相同,因为遍历是按照哈希表从前往后依次遍历的。
下面是一个使用map和unordered_map的例子:
```c++
#include <iostream>
#include <map>
#include <unordered_map>
int main() {
// 使用map
std::map<std::string, int> myMap;
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["orange"] = 3;
std::cout << "myMap[\"banana\"] = " << myMap["banana"] << std::endl;
// 使用unordered_map
std::unordered_map<std::string, int> myUnorderedMap;
myUnorderedMap["apple"] = 1;
myUnorderedMap["banana"] = 2;
myUnorderedMap["orange"] = 3;
std::cout << "myUnorderedMap[\"banana\"] = " << myUnorderedMap["banana"] << std::endl;
return 0;
}
```
阅读全文