将元素附加到矢量 - 它是实时操作吗?
appending element to vector - is it real time operation?
像std::vector
这样的传统向量有一些n个元素并使用push_back
方法追加元素,我们可以说我们在做实时操作吗?
从一个角度来看,根据知识,每当向量中的元素加倍时,内存就会再次重新分配,我们可以用多少元素来预测执行操作需要多长时间,所以我们可以说什么时候它可能具有 O(n) 的复杂性以及什么时候 O(1)。另一方面,实时算法应该是非常稳定的,所以根据某些内部条件有两个复杂度可能是不可接受的。
那最后怎么样了?
否; amortized-constant-time 通常被认为对于硬实时来说不够好。事实上,在大多数情况下,硬实时完全排除了动态内存分配。
像std::vector
这样的传统向量有一些n个元素并使用push_back
方法追加元素,我们可以说我们在做实时操作吗?
从一个角度来看,根据知识,每当向量中的元素加倍时,内存就会再次重新分配,我们可以用多少元素来预测执行操作需要多长时间,所以我们可以说什么时候它可能具有 O(n) 的复杂性以及什么时候 O(1)。另一方面,实时算法应该是非常稳定的,所以根据某些内部条件有两个复杂度可能是不可接受的。
那最后怎么样了?
否; amortized-constant-time 通常被认为对于硬实时来说不够好。事实上,在大多数情况下,硬实时完全排除了动态内存分配。