标准模板库 (STL) 中的向量与列表
Effective STL 著名地提倡默认使用向量,声明, “向量是默认情况下应使用的序列类型。”然而,此建议引发了有关向量潜在局限性的问题。
什么时候应该考虑使用列表而不是向量?主要区别在于每个容器的内存分配和元素访问特征。
主要区别
向量实现连续的内存布局,为未来的元素预先分配空间。这种高效的内存利用和随机元素访问使向量适合需要在序列末尾快速插入和删除的操作。但是,向量中其他位置的插入和删除可能成本高昂,因为它们需要重新分配整个数组。
相比之下,列表采用非连续的内存布局,为各个元素分配节点。这种方法为列表中任意点的插入和删除提供了更大的灵活性,但会给每个节点带来恒定的开销。
何时使用列表
考虑使用出现以下情况时的列表:
结论
虽然向量为涉及基于末端的插入和操作的操作提供了卓越的性能。随机元素访问,在需要在整个序列中灵活插入和删除、拼接功能以及严格遵守插入顺序的场景中列出了excel。通过了解向量和列表之间的主要区别,开发人员可以就在各种编程场景中使用哪个容器做出明智的决定。
以上是C STL 中的向量与列表:什么时候应该选择列表而不是向量?的详细内容。更多信息请关注PHP中文网其他相关文章!