unordered_set和unordered_map底层结构
时间: 2023-10-17 15:26:52 浏览: 101
unordered_map和unordered_set的模拟实现
5星 · 资源好评率100%
unordered_set和unordered_map的底层结构是哈希表。哈希表是一种根据关键字值直接进行访问的数据结构,通过把关键字映射到表中的一个位置来实现快速查找。在C++中,unordered_set和unordered_map都是使用哈希表来实现的。
哈希表的实现包括以下几个关键部分:
1. 哈希函数:用于将关键字映射到哈希表中的位置。哈希函数可以根据关键字的类型进行特化,比如整形和字符串类型。
2. 哈希桶:哈希表由一系列桶组成,每个桶可以存储一个或多个元素。哈希函数将关键字映射到具体的桶中。
3. 冲突解决方法:由于不同的关键字可能映射到同一个桶中,需要解决冲突问题。常见的解决方法有链地址法和开放地址法。链地址法使用链表将冲突的元素链接在一起,开放地址法则在冲突时重新计算哈希值,找到下一个空闲的位置。
4. 插入和查找:插入操作将元素插入到哈希表中的合适位置,查找操作根据关键字找到对应的元素。
可以看出,unordered_set和unordered_map在底层结构上非常相似,只是unordered_set存储的是唯一的关键字,而unordered_map存储的是键值对(key,value)。哈希表的特性使得它们在插入和查找操作上具有非常高的效率。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [unordered_map和unordered_set的模拟实现](https://download.csdn.net/download/weixin_38629362/14886751)[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: 50%"]
- *2* *3* [简单了解unordered_set和unordered_map底层](https://blog.csdn.net/weixin_57023347/article/details/120217804)[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: 50%"]
[ .reference_list ]
阅读全文