unordered_map和map使用场景有什么不一样
时间: 2023-08-17 14:15:21 浏览: 61
引用[2]:对比map与unordered_map,两者的区别如下:实现方式:unordered_map为哈希表,map为红黑树。查找操作:unordered_map平均为O(1),最差为O(n),map为log(n)。插入,删除操作:unordered_map与查找一样,map为log(n)平衡二叉树所用的时间。适用场景:unordered_map适用查找频率高,而map适合要求key有序的场景。[2]
根据上述引用内容,unordered_map和map的使用场景有所不同。unordered_map适用于查找频率较高的场景,因为它的查找操作平均时间复杂度为O(1),最差情况下为O(n)。而map适合要求key有序的场景,因为它的底层实现是红黑树,查找操作的时间复杂度为log(n)。所以,如果你需要频繁进行查找操作,并且不需要保持元素的有序性,那么unordered_map是一个更好的选择。而如果你需要保持元素的有序性,那么map是更适合的容器。
相关问题
unordered_set和unordered_map有什么区别?
unordered_set和unordered_map是C++标准库中的两个容器,它们的区别主要在于存储方式和功能。
unordered_set是一个无序的集合容器,它存储唯一的元素,并且不按照任何特定的顺序进行排序。它使用哈希表来实现元素的存储和查找,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。
unordered_map是一个无序的键值对容器,它存储唯一的键和对应的值,并且不按照任何特定的顺序进行排序。它也使用哈希表来实现键值对的存储和查找,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。
总结一下,unordered_set适用于需要存储唯一元素且不关心元素顺序的场景,而unordered_map适用于需要存储唯一键值对且不关心顺序的场景。
unordered_map和unordered_set有什么区别以及各自应用场景
unordered_map和unordered_set都是C++ STL中的容器,它们的区别在于unordered_map存储的是键值对,而unordered_set只存储值。因此,如果需要存储键值对,就应该使用unordered_map;如果只需要存储值,就应该使用unordered_set。在应用场景上,unordered_map适用于需要快速查找键值对的情况,而unordered_set适用于需要快速查找值的情况。