首页 > 解决方案 > 双端队列具有下标运算符的原因是什么?

问题描述

我今天和一位朋友交谈,他提出了当其他“类似”DS(如队列和堆栈)不能访问时,下标运算符能够访问双端队列元素是多么奇怪。毕竟,deque 不只是意味着双端队列吗?可以随机访问双端队列的事实不会破坏双端队列数据结构的完整性吗?

此外,从性能的角度来看,除非您实际使用双端队列方法(前后函数系列),否则不要只使用下标运算符将更少的东西带到表中?我知道双端队列背后的实现将它分成块/块,并且通常需要两个操作来实际随机访问一个元素,而向量保证在连续的内存中。

谢谢!

标签: c++vectorstldeque

解决方案


可以随机访问双端队列的事实不会破坏双端队列数据结构的完整性吗?

不,你只是挂在它的名字上。我们确实对“队列”有一个明确的定义,所以这可能是一个糟糕的词选择,但数据结构不是由它的名称定义的。

日期结构是具有一组特定关联操作的数据 (duh)。deque使用下标运算符定义的标准库。这就是数据结构。非常注意确保对操作的各种要求不冲突,因此deque作为数据结构的完整性得到了很好的支持。


推荐阅读