【发布时间】:2017-12-19 15:51:06
【问题描述】:
简单问题:是否有任何 STL 容器可以让我在恒定时间内删除当前迭代器位置?
提前致谢!
【问题讨论】:
-
注意:不过,如果您支持其他操作,请考虑(测量)
vector。双链表开销很大 -
值得注意的是,任何未排序的容器都可以将任意位置的元素与容器末尾(或开头)的元素交换,然后删除最后一个/第一个元素。这允许在恒定时间内删除,前提是交换相关容器的 value_type 可以在恒定时间内完成。此技术已在 CppCon 2016 上的 this talk 中进行了解释
-
任何基于节点的容器都应该有恒定时间删除。