如果我想将元素也推入容器的开头,我应该使用双端队列而不是向量吗?我什么时候应该使用列表以及它的意义是什么?
Use deque
如果您需要在序列的开头和结尾以及随机访问时进行高效的插入/删除;使用list
如果您需要在任何地方进行高效插入,而牺牲随机访问。迭代器和引用list
元素在容器的几乎任何突变下都非常稳定,而deque
有非常特殊的迭代器和引用失效规则(所以仔细检查它们)。
Also, list
是一个基于节点的容器,而deque
使用连续内存块,因此内存局部性可能会产生渐近复杂度估计无法捕获的性能影响。
deque
可以作为替代品vector
几乎无处不在,并且可能应该被视为 C++ 中的“默认”容器(由于其更灵活的内存要求);唯一选择的理由vector
就是当你的序列必须有保证的连续内存布局时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)