小编djs*_*rew的帖子

为什么C++标准库没有具有连续内存的deque版本?

根据我的理解,deque会根据您的需要分配新的常量内存块,而不保证它们是连续的.这确保从任一侧删除不会使当前指向双端队列的任何迭代器无效.

这种内存布局在某些情况下很方便,但它通常比连续存储内存慢.

更快的连续内存的首选容器是矢量,但它不允许您从前面推或弹.

我不明白为什么会这样.

我确信可以实现一个使用连续内存的双端队列,而且看起来它会严格优于向量.它的内存布局同样快,它还可以从前面有效地推/弹.

不仅如此,我觉得从设计角度来看也更有意义.连续的双端队列将是它速度的首选,并且当它的内存布局更好地适应手头的问题时,将使用非连续的双端队列.

如果我遗失某些东西或者看上去非常短视,请告诉我.为什么标准库中没有连续的双端队列?

c++ stl data-structures c++11

3
推荐指数
2
解决办法
199
查看次数

标签 统计

c++ ×1

c++11 ×1

data-structures ×1

stl ×1