STL 内部结构:双端队列实现
我正在使用 std::deque用于存储大量项目。
我知道双端队列是作为向量列表实现的。这些向量的大小无法设置,但我想知道选择该大小的算法是什么。
I am using a std::deque for storing a large collection of items.
I know that deques is implemented as a list of vectors. The size of those vectors cannot be set but I wander what is the algorithm for choosing that size.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
双端队列被实现为向量的向量(向量列表会阻碍恒定时间随机访问)。辅助向量的大小取决于实现,常见算法是使用以字节为单位的常量大小。
deque is implemented as a vector of vectors (a list of vectors would impede the constant time random access). The size of the secondary vectors is implementation dependent, a common algorithm is to use a constant size in bytes.
我的
deque
实现(来自 GNU 的实现,源自 HP/SGI 版本)不是一个向量列表;而是一个向量列表。至少,不是std::vector
的std::list
。评论指出My
deque
implementation, the one from GNU which is derived from the HP/SGI version, is not a list of vectors; at least, not anstd::list
ofstd::vector
s. The comments state