STL中unordered_map和map的区别和应用场景,set、unordered_set
时间: 2023-11-10 08:06:09 浏览: 47
STL中的map和unordered_map都是关联式容器,用于存储键值对。其中,map是基于红黑树实现的有序容器,而unordered_map则是基于哈希表实现的无序容器。因此,它们的主要区别在于底层数据结构的不同,以及是否有序。
在使用时,如果需要按照键的顺序进行遍历或查找,应该使用map;如果不需要有序,而是需要快速的查找、插入和删除操作,应该使用unordered_map。
set和unordered_set也是关联式容器,用于存储元素的集合。set是基于红黑树实现的有序容器,而unordered_set则是基于哈希表实现的无序容器。同样,如果需要有序的集合,应该使用set;如果不需要有序,而是需要快速的查找、插入和删除操作,应该使用unordered_set。
相关问题
unordered_map和unordered_set有什么区别以及各自应用场景
unordered_map和unordered_set都是C++ STL中的容器,它们的区别在于unordered_map存储的是键值对,而unordered_set只存储值。因此,如果需要存储键值对,就应该使用unordered_map;如果只需要存储值,就应该使用unordered_set。在应用场景上,unordered_map适用于需要快速查找键值对的情况,而unordered_set适用于需要快速查找值的情况。
unordered_map 和 unordered_set 有什么区别,什么时候用呢
unordered_map 和 unordered_set 都是 C++ STL 库提供的无序容器,它们的区别在于存储的内容和使用方式。
unordered_map 是一个关联容器,存储的是键值对(key-value pairs),每个键(key)都是唯一的。你可以使用键来访问对应的值。unordered_map 使用哈希表来实现存储和查找,因此查找操作的复杂度为 O(1)。
unordered_set 则是一个集合容器,存储的是唯一的元素,没有键值对的概念。你可以使用元素来进行查找、插入和删除操作。unordered_set 也使用哈希表来实现存储和查找,因此查找操作的复杂度为 O(1)。
当你需要存储一组唯一的元素,并且不需要通过键来访问对应的值时,你可以使用 unordered_set。例如,你可以使用 unordered_set 来存储一组不重复的整数,或者一组不重复的字符串。
当你需要存储一组键值对,并且需要通过键来快速访问对应的值时,你可以使用 unordered_map。例如,你可以使用 unordered_map 来实现一个字典,将单词映射到对应的解释上。
总结来说,unordered_map 适用于需要存储键值对的场景,unordered_set 适用于需要存储唯一元素的场景。
希望能解答你的疑问!如果还有其他问题,请随时提问。