具有快速插入和索引的容器?

时间:2014-09-03 15:58:19

标签: c++ vector avl-tree

我正在寻找一个C ++容器类,其索引类似于std::vector,但具有快速插入,删除和索引。例如,使用底层平衡树实现的vector接口也将具有O(logN)插入/删除和O(logN)索引。

要明确:我不是在寻找std::map<int, T>。在索引N处插入元素应该增加数组中所有后续元素的索引,而std::map<int, T>则不是这样。

我发现AVL Array正是我正在寻找的。它有正确的界面,但我想看看是否还有其他选择。

您知道其他任何(生产质量)实施吗?也许更流行的东西(提升有什么类似的东西?)。内存占用较少的东西? (在AVL阵列中保存指针的节点在我的机器上是64字节。)

1 个答案:

答案 0 :(得分:1)

考虑使用SkipLists了吗?基本上它是一个链表,在顶部添加了多个级别的快捷方式,组织为树。没有改组节点,只需几个指针更新。快捷方式允许您在列表中更快地迭代。我的最爱之一。

http://openmymind.net/Building-A-Skiplist/

http://en.wikipedia.org/wiki/Skip_list