相关疑难解决方法(0)

什么是STL的双端队列?

我正在查看STL容器并试图弄清楚它们到底是什么(即使用的数据结构),并且deque阻止了我:我起初认为它是一个双链表,它允许从两端插入和删除恒定时间,但我对运营商[]在恒定时间内做出的承诺感到不安.在链表中,任意访问应该是O(n),对吗?

如果它是一个动态数组,它如何在恒定时间内添加元素?应该提到的是,可能会发生重新分配,并且O(1)是一个摊销成本,就像向量一样.

所以我想知道这个结构允许在恒定时间内任意访问,同时永远不需要移动到一个新的更大的地方.

c++ stl deque

173
推荐指数
7
解决办法
6万
查看次数

为什么我更喜欢使用vector来deque

以来

  1. 它们都是连续的记忆容器;
  2. 特征明智,deque几乎所有的矢量都有,但更多,因为它在前面插入更有效.

为什么有人对子级宁愿std::vectorstd::deque

c++ stl vector deque

77
推荐指数
4
解决办法
4万
查看次数

标签 统计

c++ ×2

deque ×2

stl ×2

vector ×1