std::set 插入成员函数的有效实现是什么?因为数据结构基于 std::less 对元素进行排序(需要为元素类型定义运算符 <),所以在概念上很容易检测到重复。
它在内部实际上是如何工作的?它是否利用了红背树数据结构(在 Josuttis 的书中提到的实现细节)?
标准数据结构的实现可能会有所不同......
我有一个问题,我被迫拥有一组(一般来说)应该是唯一的整数。集合的长度各不相同,所以我需要动态数据结构(根据我的狭隘知识,这将事情缩小到列表、集合)。元素不一定需要排序,但可能没有重复。由于候选集总是有很多重复项(集很小,最多 64 个元素),与 std::list 和另一种算法相比,尝试使用 insert 成员函数将重复项插入 std::set 会导致大量开销那可能不会诉诸对元素进行排序?
附加:输出集具有 27 个元素的固定大小。抱歉,我忘记了这个......这适用于问题的特殊情况。对于其他情况,长度是任意的(小于输入集)。