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时失效) 不稳定
内存占用 较低(树结构紧凑) 较低 较高(需预分配哈希桶) 较高
适用场景 需有序遍历或范围查询 需有序且允许重复 高频查找且无需顺序 高频插入/删除且允许重复