【发布时间】:2014-10-29 04:51:19
【问题描述】:
我正在寻找具有以下属性的数据结构:
- 已排序(除非排序迭代不需要这样做)
- 按排序顺序进行 O(1) 次迭代。
- 快速插入。我认为 O(lg(n)) 是要走的路。
- 快速删除
using an iterator。我希望至少与插入速度相同。我将永远不必按值删除项目,并且始终可以使用迭代器。此要求意味着插入和迭代永远不会使迭代器失效,除非按值删除的速度与按迭代器删除的速度相同。
其他任何内容都不相关,永远不会被使用。
搜索了一段时间后,我找不到遵循这些属性的数据结构。堆允许快速插入和删除(虽然不是通过迭代器本身),但不容易以所需的方式进行迭代。
我还查看了一个已排序的向量。这具有快速的插入和正确的迭代,但删除非常困难。
我会说这是一个非常常见的数据结构,即使我找不到匹配的结构。此外,我认为删除时我总是有一个迭代器这一事实可能会提高性能。
我希望你能帮助我朝着正确的方向前进。
【问题讨论】:
标签: c++ data-structures