map,unordered_map, set, unordered_set什么时候用哪个
时间: 2024-03-29 19:32:41 浏览: 56
unordered_map和unordered_set的模拟实现
5星 · 资源好评率100%
map、unordered_map、set和unordered_set都是C++ STL中的容器,用于存储和操作数据。
1. map:是一个有序的关联容器,存储键值对,并按照键的顺序进行排序。它基于红黑树实现,查找、插入和删除的时间复杂度为O(logN)。当需要按照键进行排序或者需要快速查找某个键值对时,可以选择使用map。
2. unordered_map:是一个无序的关联容器,存储键值对,并根据键的哈希值进行组织。它基于哈希表实现,查找、插入和删除的平均时间复杂度为O(1)。当不需要按照键进行排序,而是更关注快速的插入和查找操作时,可以选择使用unordered_map。
3. set:是一个有序的容器,存储唯一的元素,并按照元素的顺序进行排序。它基于红黑树实现,查找、插入和删除的时间复杂度为O(logN)。当需要按照元素进行排序或者需要快速判断某个元素是否存在时,可以选择使用set。
4. unordered_set:是一个无序的容器,存储唯一的元素,并根据元素的哈希值进行组织。它基于哈希表实现,查找、插入和删除的平均时间复杂度为O(1)。当不需要按照元素进行排序,而是更关注快速的插入和查找操作时,可以选择使用unordered_set。
阅读全文