gpt4 book ai didi

c++ - 双端队列有下标运算符的原因是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 01:28:51 24 4
gpt4 key购买 nike

我今天和一个 friend 聊天,他提到双端队列元素能够被下标运算符访问,而其他“相似”的 DS,比如队列和堆栈却不能访问,这是多么奇怪。毕竟,deque 不就是双端队列的意思吗?可以随机访问 deque 的事实不会破坏 deque 数据结构的完整性吗?

此外,从性能的角度来看,除非您实际使用双端队列方法(前端和后端函数系列),否则双端队列难道不会完全使用下标运算符来减少表中的内容吗?我知道 deque 背后的实现将它分成 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com