我正在寻找一个C ++容器类,其索引类似于std::vector
,但具有快速插入,删除和索引。例如,使用底层平衡树实现的vector
接口也将具有O(logN)插入/删除和O(logN)索引。
要明确:我不是在寻找std::map<int, T>
。在索引N
处插入元素应该增加数组中所有后续元素的索引,而std::map<int, T>
则不是这样。
我发现AVL Array正是我正在寻找的。它有正确的界面,但我想看看是否还有其他选择。
您知道其他任何(生产质量)实施吗?也许更流行的东西(提升有什么类似的东西?)。内存占用较少的东西? (在AVL阵列中保存指针的节点在我的机器上是64字节。)
答案 0 :(得分:1)
考虑使用SkipLists了吗?基本上它是一个链表,在顶部添加了多个级别的快捷方式,组织为树。没有改组节点,只需几个指针更新。快捷方式允许您在列表中更快地迭代。我的最爱之一。