gpt4 book ai didi

c++ - slist 优于 vector 的好处?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:54 26 4
gpt4 key购买 nike

我需要的只是一个动态增长的数组。我不需要随机访问,我总是插到最后,从头读到尾。

slist 似乎是首选,因为它提供了我所需要的。但是,我不知道使用 slist 而不是 vector 有什么好处。此外,我读到的一些关于 STL 的 Material 说,“vector 通常是访问元素和从序列末尾添加或删除元素的最有效时间”。因此,我的问题是:对于我的需要,slist 真的是比 vector 更好的选择吗?提前致谢。

最佳答案

对于初学者来说,slist 是非标准的。

根据您的选择,链表会比 vector 慢,相信它。造成这种情况的原因有两个:

  1. 首先是缓存位置; vector 将其元素线性存储在 RAM 中,这有助于缓存和预取。
  2. 其次,附加到链表涉及动态分配,这会增加大量开销。相比之下, vector 大多数时候不需要需要分配内存。

但是,std::deque 可能会更快。 In-depth performance analysis已经表明,尽管有相反的偏见,std::deque 在性能上几乎总是优于 std::vector(如果不需要随机访问),由于它改进了(分块)内存分配策略。

关于c++ - slist 优于 vector 的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907087/

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