type
status
date
slug
summary
tags
category
icon
password
C++之哈希表(STL容器)
在C++的STL中由unordered_set和unordered_map实现。
unordered_set
unordered_map
区别
unordered_map
和unordered_set
都是C++标准库中的容器,它们基于哈希表实现,因此插入、删除和查找操作的平均时间复杂度都是O(1)。然而,它们的使用场景和内部实现上存在一些关键的区别。- 存储内容:
unordered_map
:存储键值对(key-value pairs)。- 每个键(key)都是唯一的,并与一个值(value)相关联。
- 可以通过键来快速查找、插入或删除对应的值。
std::unordered_set
:只存储唯一的键(keys)。- 它不存储与键相关联的值。
- 你可以快速检查一个键是否存在于集合中,或者快速插入或删除一个键。
- 迭代器:
- 对于
unordered_map
,迭代器指向的是键值对。 - 对于
unordered_set
,迭代器指向的是键。
- 使用场景:
- 当你需要存储键值对,并且需要快速通过键来查找、插入或删除对应的值时,应该使用
unordered_map
。 - 当你只需要存储唯一的键,并需要快速检查键的存在性,或者快速插入或删除键时,应该使用
unordered_set
。
- 内存使用:
- 由于
unordered_map
存储了键值对,因此它通常会比存储相同数量键的unordered_set
使用更多的内存。
总的来说,如果你需要存储键值对,那么应该选择
unordered_map
;如果你只需要存储唯一的键,那么应该选择unordered_set
。📎 参考文章
- 引用视频
- 引用文章
- Author:Chailyn
- URL:https://own.chailyncui.blog/article/%E5%93%88%E5%B8%8C%E8%A1%A8-2
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts