map 和 unorde_map
时间: 2023-10-21 16:27:49 浏览: 42
map和unordered_map都是C++标准库中的容器,用于存储键值对。map内部实现了一个红黑树,具有自动排序的功能,所以map内部的所有元素都是有序的。而unordered_map的底层实现完全由hash表代替,所以没有自动排序的功能。unordered_map适用于只查找元素的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++ unordered_map与unordered_set](https://blog.csdn.net/GreedySnaker/article/details/114002446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
map 和unordered_map
map和unordered_map都是C++ STL中的关联容器,用于存储键值对。它们之间的主要区别在于底层实现和性能方面。
map是基于红黑树实现的有序关联容器,它按照键的大小进行排序。它的查找、插入和删除操作的时间复杂度都是O(log n),其中n是容器中元素的个数。由于红黑树的特性,map中的元素是有序的。
unordered_map是基于哈希表实现的无序关联容器,它根据键的哈希值进行存储和查找。它的查找、插入和删除操作的平均时间复杂度是O(1),最坏情况下的时间复杂度是O(n),其中n是容器中元素的个数。unordered_map中的元素是无序的。
使用map的情况是当你需要有序的键值对,并且对于插入和删除操作的效率要求不高时。而使用unordered_map的情况是当你需要快速的查找和插入操作,并且不需要有序的键值对时。
c++map和unordered_map
C++中的map和unordered_map都是用来实现键值对存储的数据结构,它们提供了类似字典的功能。两者的主要区别在于底层的实现方式和性能特征。
map是基于红黑树实现的有序映射容器,其中的元素按照键的大小进行自动排序。它的特点是插入、删除和查找操作的时间复杂度都是O(log n),其中n是map中元素的数量。因此,当需要保持元素有序时,或者需要频繁进行插入、删除和查找操作时,map是一个不错的选择。
unordered_map则是基于哈希表实现的无序映射容器,其中的元素没有固定顺序。它的特点是在平均情况下,插入、删除和查找操作的时间复杂度都是O(1),但在最坏情况下可能会达到O(n),其中n是unordered_map中元素的数量。因此,当不需要保持元素有序,并且对插入、删除和查找操作的性能要求较高时,unordered_map是一个更好的选择。
根据具体需求,选择map还是unordered_map取决于对顺序性和性能的权衡。如果需要有序性或者对性能要求较低,可以使用map;如果不需要有序性并且对性能要求较高,可以使用unordered_map。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)