从理论上讲,您应该能够在O(1)时间内将任何位置插入列表中(在选择的索引处)。但是,当使用STL列表时,您需要在迭代器位置插入,并且据我所知,迭代器位置必须增加O(n)次才能将其设置为所需的索引。我对为什么这样会感到mb目结舌,肯定我弄错了,有办法更快地做到这一点吗?
答案 0 :(得分:5)
我肯定弄错了
不,您没有记错。
有没有一种更快的方法?
仅当通过捕获上一个插入调用的返回值来缓存要插入的位置时,才能更快地执行此操作。如果除了列表和要插入的索引之外没有其他信息,则O(n)
是您唯一的选择,其中n
是要插入的索引。