(6)std::multiset

std::multiset 是 C++ 标准模板库(STL)中的一个关联容器,它是 std::set 的变体,其核心特性是允许元素重复。同一个值可以出现多次,但所有元素仍然保持有序。
允许重复元素:
 - 与 std::set 的唯一性不同,std::multiset 允许插入相同的值多次。
 - 这是它与 std::set 最根本的区别。

有序性:
 - 所有元素根据其值自动按升序排列(默认使用 std::less<T>)。
 - 相同值的元素在容器中的相对顺序与插入顺序一致(稳定排序)。

基于平衡二叉搜索树:
 - 底层通常使用红黑树实现,与 std::set 相同。
 - 这保证了操作的稳定性能。

对数时间复杂度:
 - 插入、删除、查找单个元素的平均和最坏时间复杂度为 O(log n)。
 - 删除所有特定值的元素或查找范围的时间复杂度为 O(log n + k),其中 k 是匹配元素的数量。

键值一体:
 - 和 std::set 一样,元素的值本身就是其排序和查找的“键”。
posted @ 2018-06-21 10:22  osbreak  阅读(454)  评论(0)    收藏  举报