【发布时间】:2011-07-17 17:44:43
【问题描述】:
自从
- 它们都是连续的内存容器;
- 功能方面,deque 几乎具备 vector 的所有功能,但更多,因为插入到前面更有效。
为什么有人更喜欢std::vector 而不是std::deque?
【问题讨论】:
-
std::deque的 Visual C++ 实现具有非常小的最大块大小(大约 16 字节,如果我没记错的话;可能是 32),因此对于实际应用程序来说表现不佳。deque<T>其中sizeof(T) > 8(或16?这是一个小数字)具有与vector<T*>大致相同的性能特征,其中每个元素都是动态分配的。其他实现具有不同的最大块大小,因此使用deque在不同平台上编写具有相对相同性能特征的代码是很困难的。 -
Deque 不是一个连续的内存容器。
-
@ravil 不,那是重复的,指向这个问题。
-
很难相信一个带有未修复的明显事实错误的问题在 34 票中处于平衡状态
-
@underscore_d 这就是为什么它是一个问题。如果是答案,那就另当别论了;)