【发布时间】:2012-10-19 14:36:41
【问题描述】:
我正在寻找一些简单的实现数据结构,可以在最短的时间内满足我的需求(在最坏的情况下):-
(1)弹出第 n 个元素(我必须保持元素的相对顺序不变)
(2)访问第 n 个元素 .
我不能使用 array 因为它不能弹出,我不想在删除第 i 个元素后有间隙。我试图通过将第 n 个元素与 next 再次与 next 直到 last 交换来消除差距,但这证明时间效率低下,尽管数组的 O(1) 是无与伦比的。
我尝试使用向量并使用 'erase' 来弹出弹出窗口和 '.at()' 来访问权限,但即使这样在时间效率上也并不便宜,尽管它比数组更好。
【问题讨论】:
-
堆栈不适合这个吗?
-
@BhanuKaushik 你打算如何使用堆栈来完成其中的任何一个?
-
我的错。我想我误解了。道歉!
-
@BhanuKaushik ,堆栈显然在这两种情况下都更糟糕,也比具有 O(n),O(n) 复杂性的数组和向量最差,而数组提供 O(n) 和 O(1)和向量提供 O(t-n) & O(1) :这里的堆栈和队列简直是最糟糕的!
-
std::deque怎么样?虽然我真的不知道。
标签: data-structures