将元素附加到矢量 - 它是实时操作吗?

appending element to vector - is it real time operation?

std::vector这样的传统向量有一些n个元素并使用push_back方法追加元素,我们可以说我们在做实时操作吗?

从一个角度来看,根据知识,每当向量中的元素加倍时,内存就会再次重新分配,我们可以用多少元素来预测执行操作需要多长时间,所以我们可以说什么时候它可能具有 O(n) 的复杂性以及什么时候 O(1)。另一方面,实时算法应该是非常稳定的,所以根据某些内部条件有两个复杂度可能是不可接受的。

那最后怎么样了?

否; amortized-constant-time 通常被认为对于硬实时来说不够好。事实上,在大多数情况下,硬实时完全排除了动态内存分配。