c++ - 在顶部插入时双端队列是否提供 O(1) 复杂度

标签 c++ vector stl deque

我正在检查 this发布,它指出双端队列在顶部和底部提供了有效的插入。但是这post这里指出除背面之外的双端队列的时间复杂度为 O(n)。我认为如果双端队列具有有效的顶部和底部插入,它将具有 O(1),而 vector 仅在底部插入时具有 O(1) .如果有人能澄清这一点,我将不胜感激

最佳答案

C++98,第 23.2.1 节(模板类双端队列)

“一个双端队列...支持在开始或结束的恒定时间插入和删除操作;在中间插入和删除需要线性时间。也就是说,一个双端队列特别针对在开始和弹出元素时进行了优化开始和结束。与 vector 一样,存储管理是自动处理的。”

所以是的:在两端插入 O(1)。

关于c++ - 在顶部插入时双端队列是否提供 O(1) 复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306949/

相关文章:

c++ - : Insert pair into multimap, 其中一种类型如何是抽象的?

c++ - 无法在 C++ 中使用 system() 更改目录

c++ - 使用嵌套 vector 与扁平 vector 包装器时,行为异常

C++:如何阻止 map 的 operator[] 插入虚假值?

STL - std::vector::data() 的状态是什么?

c++ - 实现一个动态数组(我可以访问不存在的位置)

.net - 不能在另一个项目的 dll 中使用一个类的 typedef

C++从char数组到BCD

c++ - 允许从程序内部取消 openmp 线程

MATLAB - 从向量中删除前导零和尾随零