unordered_set 和unordered_map的区别
时间: 2023-07-23 14:12:42 浏览: 155
map和set的异同
unordered_set和unordered_map是C++标准库中的两个容器类,它们的区别如下:
1. 存储方式:unordered_set是一种无序的集合容器,其中的元素没有特定的顺序,而unordered_map是一种无序的键值对容器,可以根据键来查找对应的值。
2. 元素类型:unordered_set存储唯一的元素,而unordered_map存储键值对,其中键是唯一的。
3. 底层实现:unordered_set和unordered_map都是基于哈希表实现的。unordered_set使用哈希函数将元素映射到桶中,而unordered_map则使用哈希函数将键映射到桶中。
4. 访问元素:在unordered_set中,可以通过迭代器或者范围进行元素的访问。在unordered_map中,可以通过键来访问对应的值。
5. 冲突处理:当多个元素被映射到同一个桶中时,称为冲突。unordered_set和unordered_map都使用链地址法解决冲突,即将冲突的元素链接在同一个桶中。
总的来说,unordered_set适用于需要存储唯一元素的场景,而unordered_map适用于需要存储键值对并且通过键快速查找值的场景。它们在使用时具有不同的特点和用途。
阅读全文