问题描述
自从
- 它们都是连续的内存容器;
- 在功能方面,deque 几乎拥有 vector 的所有功能,但更多,因为在前面插入效率更高.
为什么有人更喜欢 std::vector 而不是 std::deque?
Why whould anyone prefer std::vector to std::deque?
推荐答案
deque 中的元素在内存中不连续;vector 元素保证是.因此,如果您需要与需要连续数组的普通 C 库进行交互,或者如果您(非常)关心空间局部性,那么您可能更喜欢 vector.此外,由于有一些额外的簿记,其他操作可能(略)比其等效的 vector 操作昂贵.另一方面,使用多个/大型 vector 实例可能会导致不必要的堆碎片(减慢对 new 的调用).
Elements in a deque are not contiguous in memory; vector elements are guaranteed to be. So if you need to interact with a plain C library that needs contiguous arrays, or if you care (a lot) about spatial locality, then you might prefer vector. In addition, since there is some extra bookkeeping, other ops are probably (slightly) more expensive than their equivalent vector operations. On the other hand, using many/large instances of vector may lead to unnecessary heap fragmentation (slowing down calls to new).
此外,正如 StackOverflow 上的其他地方所指出的,这里有更多很好的讨论:http://www.gotw.ca/gotw/054.htm.
Also, as pointed out elsewhere on StackOverflow, there is more good discussion here: http://www.gotw.ca/gotw/054.htm .
这篇关于为什么我更喜欢使用 vector 来 deque的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)