c++ unordered_map的key
时间: 2023-09-20 17:14:49 浏览: 139
是的,C++的unordered_map的key可以是vector。unordered_map是一个关联容器,它存储了一组键值对,并且提供了通过键快速访问值的功能。在unordered_map中,键可以是任何可哈希的类型,包括vector。要使用vector作为unordered_map的键,需要确保vector类型具有可哈希性,即为其定义了哈希函数。你可以通过提供自定义的哈希函数来实现这一点。
相关问题
C++ unordered_map
C++中的unordered_map是一个哈希表容器,用于存储键值对。它使用模板来定义,主要有两个参数:键的类型(Key)和值的类型(T)。可以通过unordered_map的迭代器来访问这些元素。迭代器是一个指针,指向元素,并可以通过迭代器来获取键值对的值。在使用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 的使用](https://blog.csdn.net/xiaoyu_wu/article/details/121490312)[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 c++ unordered_map multimap
map和unordered_map是C++中的两种容器,用于存储键值对。map中的key不允许重复,是单重映射表;而multimap中的key允许重复,是多重映射表。
map和multimap的区别在于底层实现和特性。map是基于红黑树实现的,它保证了元素按照key的大小有序排列;而multimap同样基于红黑树实现,但允许相同的key存在。
unordered_map和unordered_multimap是基于哈希表实现的,它们的查找、插入和删除操作都具有常数时间复杂度。这意味着在对访问速度有要求的情况下,我们可以优先选择使用unordered_map。而在考虑到空间大小对程序影响的时候,我们可以优先选择使用map。
综上所述,map适用于需要有序存储且不允许重复key的情况,unordered_map适用于对访问速度有要求的情况,multimap适用于允许重复key的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [c++中map、multimap、unordered_map、unordered_multimap的区别](https://blog.csdn.net/lyn631579741/article/details/122052598)[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_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文