我今天和一位 friend 聊天,他提到双端队列元素能够通过下标运算符访问,而其他“类似”DS(例如队列和堆栈)则不能访问,这是多么奇怪。毕竟,deque 不就是双端队列吗?双端队列可以随机访问的事实是否会破坏双端队列数据结构的完整性?
另外,从性能的角度来看,除非您实际上使用了 deque 方法(前端和后端函数系列),否则 deque 是否会完全使用下标运算符将 less 带到表中?我了解双端队列背后的实现将其分成 block / block ,并且通常需要两个操作才能实际随机访问元素,而 vector 保证位于连续内存中。
谢谢!
最佳答案
Doesn't the fact that deque's can be randomly accessed ruin the very integrity of the deque data structure?
没有。你只是对它的名字感兴趣。我们心里确实对“队列”有一个明确的定义,所以这也许是一个糟糕的用词,但数据结构并不是由它的名字来定义的。
日期结构是具有一组特定关联操作的数据(废话)。标准库定义了带有下标运算符的deque
。这就是数据结构。我们非常小心地确保操作上的各种要求不会发生冲突,因此deque
作为数据结构的完整性得到了很好的维护。
关于c++ - 双端队列有下标运算符的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51053652/