c++中的unordered_map
时间: 2023-10-28 16:59:39 浏览: 103
引用中提到,C++中的unordered_map是一种关联容器,它将键值对存储在哈希表中。在unordered_map中,元素的取值可以通过at和[]两种操作来进行。使用at操作可以获取指定键的值,使用[]操作可以获取指定键的值,并且如果该键不存在,则会插入一个默认值并返回它。另外,在unordered_map中还可以进行容量查询、删除操作和查找操作。
容量查询方面,可以使用empty()函数查询unordered_map是否为空,使用size()函数查询unordered_map中键值对的数量,使用max_size()函数查询unordered_map所能包含的最大键值对数量,使用count()函数查询关键字为key的元素的个数。
删除操作方面,可以使用erase()函数删除一个迭代器指向的键值对,也可以使用erase()函数删除一定范围内的元素,还可以使用erase()函数根据键来进行删除。另外,可以使用clear()函数清空unordered_map。
查找操作方面,可以使用find()函数根据关键字查询元素,如果找到则返回指向该关键字的迭代器,否则返回指向end的迭代器。
综上所述,C++中的unordered_map是一种关联容器,可以通过at和[]操作获取元素的值,可以进行容量查询、删除操作和查找操作。
相关问题
C++中unordered_map
在C++中,unordered_map是一种关联容器,用于存储键值对。可以通过键快速查找值,其元素是无序的。在unordered_map中,我们可以使用at和[ ]两种操作来获取元素的值。例如,m和m.at(1)都可以获取键为1的元素的值。
此外,unordered_map还提供了一些容量查询的函数,例如empty()用于查询是否为空,size()用于查询键值对的数量,max_size()用于查询unordered_map所能包含的最大键值对数量。还有count()函数可以查询关键字为key的元素的个数。在unordered_map中,返回的结果非0即1。
如果需要删除元素,可以使用erase()函数。erase()函数可以删除迭代器指向的位置的键值对,并返回一个指向下一元素的迭代器。还可以使用erase()函数删除一定范围内的元素,以及根据Key来进行删除。clear()函数可以清空整个unordered_map。
另外,我们可以使用find()函数来进行关键字查询。如果找到了该关键字,find()函数会返回指向该关键字的迭代器;如果未找到,则会返回指向end的迭代器。根据unordered_map的类型不同,返回的迭代器可以是iterator或者const_iterator。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [C++ unordered_map](https://blog.csdn.net/weixin_43203889/article/details/116029452)[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 ]
c++中unordered_map和map的区别
在C++中,unordered_map和map都是关联容器,用于存储键值对。它们之间的主要区别在于底层实现和性能特点。
1. 底层实现:unordered_map使用哈希表实现,而map使用红黑树实现。
2. 查找效率:unordered_map的查找操作平均时间复杂度为O(1),而map的查找操作平均时间杂度为(log n)。因此,在大多数况下,unordered的查找速度更快。
3. 有序性:_map不会对元素进行排序,而map会根据键的比较规则自动进行排序。因此,如果需要按照键的顺序遍历或者查找,可以选择使用map。
4. 内存占用:由于unordered_map使用哈希表,可能会占用更多的内存空间。而map使用红黑树,相对来说内存占用较少。
5. 插入和删除操作:unordered_map的插入和删除操作平均时间复杂度为O(1),而map的插入和删除操作平均时间复杂度为O(log n)。因此,在频繁进行插入和删除操作的场景下,unordered_map更高效。
阅读全文