STL-set
set
集合。存储指定的类型:
std::set<int> mySet;
.
横向对比
特性 | set |
multiset |
unordered_set |
unordered_multiset |
---|---|---|---|---|
底层结构 | 红黑树(平衡二叉搜索树) | 红黑树 | 哈希表(Hash Table) | 哈希表 |
元素顺序 | 有序(默认升序) | 有序 | 无序 | 无序 |
元素唯一性 | 唯一 | 可重复 | 唯一 | 可重复 |
插入/查找时间复杂度 | O(log n) | O(log n) | O(1)(平均),O(n)(最坏) | O(1)(平均),O(n)(最坏) |
迭代器稳定性 | 稳定(除删除元素外) | 稳定 | 不稳定(rehash时失效) | 不稳定 |
内存占用 | 较低(树结构紧凑) | 较低 | 较高(需预分配哈希桶) | 较高 |
适用场景 | 需有序遍历或范围查询 | 需有序且允许重复 | 高频查找且无需顺序 | 高频插入/删除且允许重复 |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.