你这里使用了unordered_map不算使用STL容器么
时间: 2023-12-02 18:47:24 浏览: 72
抱歉,我在这里使用了unordered_map,它属于STL库中的容器之一。因此,上述实现中确实使用了STL容器。非STL容器的实现方式可能需要使用其他数据结构来替代unordered_map。我可以为您提供一种使用数组和链表来实现LRU Cache的方法,这样就不会使用STL容器。是否需要这种实现方式呢?
相关问题
unordered_multiset,unordered_set,unordered_multimap,unordered_map,set,map,multiset,multimap的区别和特点 unordered_multiset,unordered_set,unordered_multimap,unordered_map,set,map,multiset,multimap的区别和特点
这些容器都是C++ STL(标准模板库)中的关联容器,用于存储和管理键值对数据。它们的区别和特点如下:
1. unordered_multiset和unordered_set:
- 无序容器,使用哈希表实现。
- unordered_multiset允许重复的元素,而unordered_set不允许。
- 插入、查找和删除的平均时间复杂度为常数时间(O(1))。
- 元素的顺序是无序的,不会根据插入顺序或键值排序。
2. unordered_multimap和unordered_map:
- 无序容器,使用哈希表实现。
- unordered_multimap允许键重复,而unordered_map不允许。
- 插入、查找和删除的平均时间复杂度为常数时间(O(1))。
- 元素的顺序是无序的,不会根据插入顺序或键值排序。
3. set和map:
- 有序容器,使用红黑树实现。
- set中存储唯一的键,map中存储键值对。
- 插入、查找和删除的平均时间复杂度为对数时间(O(log n))。
- 元素的顺序是按照键值排序的。
4. multiset和multimap:
- 有序容器,使用红黑树实现。
- 允许重复的键。
- 插入、查找和删除的平均时间复杂度为对数时间(O(log n))。
- 元素的顺序是按照键值排序的。
总结:unordered容器提供了更快的插入、查找和删除操作,但不保证元素顺序;而有序容器保证元素按照键值有序存储,但操作速度相对较慢。选择使用哪个容器取决于具体的需求。
STL中unordered_map和map的区别和应用场景,set、unordered_set
STL中的map和unordered_map都是关联式容器,用于存储键值对。其中,map是基于红黑树实现的有序容器,而unordered_map则是基于哈希表实现的无序容器。因此,它们的主要区别在于底层数据结构的不同,以及是否有序。
在使用时,如果需要按照键的顺序进行遍历或查找,应该使用map;如果不需要有序,而是需要快速的查找、插入和删除操作,应该使用unordered_map。
set和unordered_set也是关联式容器,用于存储元素的集合。set是基于红黑树实现的有序容器,而unordered_set则是基于哈希表实现的无序容器。同样,如果需要有序的集合,应该使用set;如果不需要有序,而是需要快速的查找、插入和删除操作,应该使用unordered_set。
阅读全文