【发布时间】:2020-07-16 05:09:35
【问题描述】:
找不到正确答案
为什么在我们提供插入位置时插入函数需要 o(n) 时间复杂度? 谁能告诉我原因…… 在我看来,这是因为迭代器而发生的,,,, 可能是我错了,但我想澄清一下..
我从给定的链接中阅读了它,但我没有找到问题的正确答案。
【问题讨论】:
为什么在我们提供插入位置时插入函数需要 o(n) 时间复杂度? 谁能告诉我原因…… 在我看来,这是因为迭代器而发生的,,,, 可能是我错了,但我想澄清一下..
我从给定的链接中阅读了它,但我没有找到问题的正确答案。
【问题讨论】:
std::vector 中的内存通常表示为一个数组,因此在数组中间插入一个新元素而不覆盖任何内容要求该点之后的所有数据都向右移动(线性复杂度)。在末尾插入push_back()通常是常数时间,除非需要增加向量数组的内部容量,在这种情况下它又是线性的。
【讨论】: