c++ - 双端队列具有下标运算符的原因是什么?
问题描述
我今天和一位朋友交谈,他提出了当其他“类似”DS(如队列和堆栈)不能访问时,下标运算符能够访问双端队列元素是多么奇怪。毕竟,deque 不只是意味着双端队列吗?可以随机访问双端队列的事实不会破坏双端队列数据结构的完整性吗?
此外,从性能的角度来看,除非您实际使用双端队列方法(前后函数系列),否则不要只使用下标运算符将更少的东西带到表中?我知道双端队列背后的实现将它分成块/块,并且通常需要两个操作来实际随机访问一个元素,而向量保证在连续的内存中。
谢谢!
解决方案
可以随机访问双端队列的事实不会破坏双端队列数据结构的完整性吗?
不,你只是挂在它的名字上。我们确实对“队列”有一个明确的定义,所以这可能是一个糟糕的词选择,但数据结构不是由它的名称定义的。
日期结构是具有一组特定关联操作的数据 (duh)。deque
使用下标运算符定义的标准库。这就是数据结构。非常注意确保对操作的各种要求不冲突,因此deque
作为数据结构的完整性得到了很好的支持。
推荐阅读
- perl - 如何在 Getopt::Long getoptions 中打印命令参数
- python - AttributeError:类型对象“pandana.cyaccess.cyaccess”没有属性“__reduce_cython__”
- rabbitmq - 什么是构建提醒应用程序的最佳队列系统
- c++ - 与 32 位共享对象的链接问题
- python - matplotlib 中的标题和副标题对齐不一致
- python - 解码使用 VB 创建的 Python 3.7.4 文件名
- uwp - 用于每小时自动更新 UWP 应用程序的构建参数
- python - Tkinter mainloop、after 和 threading 与时间密集型代码混淆
- node.js - Ruby 在这一行做了什么?
- php - PHP cURL 有时会被发送两次