Since
- 它们都是连续的内存容器;
- 在功能方面,双端队列几乎拥有向量所拥有的一切,但更多,因为在前面插入效率更高。
为什么有人会更喜欢std::vector
to std::deque
?
中的元素deque
are not内存中连续的;vector
元素保证是。因此,如果您需要与需要连续数组的普通 C 库进行交互,或者您(非常)关心空间局部性,那么您可能更喜欢vector
。此外,由于有一些额外的簿记,其他操作可能(稍微)比同等操作贵vector
运营。另一方面,使用许多/大型实例vector
可能会导致不必要的堆碎片(减慢对new
).
另外,正如所指出的StackOverflow 上的其他地方 https://stackoverflow.com/questions/139824/vector-or-deque/139836#139836,这里有更多好的讨论:http://www.gotw.ca/gotw/054.htm http://www.gotw.ca/gotw/054.htm .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)