gpt4 book ai didi

c++ - STL Containers - vector 、列表和双端队列之间的区别

转载 作者:IT老高 更新时间:2023-10-28 23:11:18 24 4
gpt4 key购买 nike

如果我想在容器的开头也推送元素,我应该使用双端队列而不是 vector 吗?什么时候应该使用 list,它有什么意义?

最佳答案

如果您需要在序列的开头和结尾进行有效的插入/删除以及随机访问,请使用 deque;如果您需要在任何地方有效插入,请使用 list,但会牺牲随机访问。 list 元素的迭代器和引用几乎在容器的任何突变下都​​非常稳定,而 deque 具有非常奇特的迭代器和引用失效规则(因此请仔细检查)。

另外,list 是基于节点的容器,而 deque 使用连续内存块,因此内存局部性可能具有渐近复杂度无法捕获的性能影响估计。

deque 几乎可以在任何地方充当 vector 的替代品,并且可能应该被视为 C++ 中的“默认”容器(考虑到其更灵活的内存要求) ;首选 vector 的唯一原因是当您必须保证序列的连续内存布局时。

关于c++ - STL Containers - vector 、列表和双端队列之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com