unordered_set和unordered_map
时间: 2023-04-29 11:04:22 浏览: 125
unordered_set 是 C++ STL 中的一种无序集合容器,其中的元素没有特定的顺序。unordered_set 的元素是唯一的,不能重复。
unordered_map 是 C++ STL 中的一种无序映射容器,其中的元素也没有特定的顺序。unordered_map 存储键值对,其中键是唯一的,值可以重复。
相关问题
unordered_set和unordered_map与set和map的区别
unordered_set和unordered_map是C++标准库中的容器,而set和map也是C++标准库中的容器。它们之间的区别主要有以下几点:
1. 实现方式:unordered_set和unordered_map使用哈希表实现,而set和map使用红黑树实现。哈希表的插入、查找和删除操作的平均时间复杂度为O(1),而红黑树的平均时间复杂度为O(log n)。
2. 元素顺序:unordered_set和unordered_map中的元素是无序的,而set和map中的元素是按照键值进行排序的。如果需要按照特定顺序访问元素,可以使用set和map;如果不需要关心元素的顺序,可以使用unordered_set和unordered_map。
3. 键值唯一性:set和unordered_set中的键值是唯一的,即每个键只能出现一次;而map和unordered_map中的键值是唯一的,但值可以重复。
4. 内存占用:由于使用了哈希表,unordered_set和unordered_map通常会占用更多的内存空间,而set和map通常会占用较少的内存空间。
5. 迭代器稳定性:在进行插入和删除操作后,set和map中的迭代器仍然有效,而unordered_set和unordered_map中的迭代器可能会失效。
unordered_set和unordered_map什么区别
unordered_set和unordered_map是C++标准库中的两个容器,它们的主要区别在于存储的元素类型和存储方式。
unordered_set是一个无序的集合容器,它存储唯一的元素,并且不按照任何特定的顺序进行排序。它使用哈希表来实现元素的存储和查找,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。
unordered_map是一个无序的键值对容器,它存储唯一的键和对应的值,并且不按照任何特定的顺序进行排序。它也使用哈希表来实现键值对的存储和查找,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。
总结一下,unordered_set适用于需要存储唯一元素且不关心元素顺序的场景,而unordered_map适用于需要存储唯一键值对且不关心顺序的场景。
阅读全文