c++ STL之unordered_set
unordered_set的特点:
- 自身值就是主键,所以值唯一并且不可修改
- 基于hash表的无序排列
unordered_set基于哈希表,是无序的。
在一个 unordered_set
容器中,元素的值同时可以用来标志对应的元素(即值是自身的主键),每个值必须是唯一的。主键是不可修改的,因此在 unordered_set
中的元素不能被逐个修改(所有元素保持恒定),但是可以删除某个元素或插入新的元素。
在 unordered_set
内部,元素不会按任何顺序排序,而是通过元素值的 hash 值将元素分组放置到各个槽(Bucket,也可译成“桶”)中,这样就能通过元素值快速地访问各个对应的元素(平均耗时为一个常量,即时间复杂度为 O(1))。
在访问容器中的某个元素时,unordered_set
容器比 set
容器高效,而在迭代容器元素的某个子集时,前者比后者稍微低效了一点。
参考文章:http://classfoo.com/ccby/article/qNNOJ
https://blog.csdn.net/vevenlcf/article/details/51743058
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步