我想知道STL:list,STL:vector,数组和链表在基本级别上与彼此相比有什么区别。

我的理解是,通常,链接列表允许可增长的列表,插入和删除要容易得多,但是直接访问链接列表中的单个元素会花费更长的时间,因为您需要遍历每个元素。

我可能会错过许多其他关键差异,因此您也可以指出一些更明显的差异。

比较中列表和向量如何发挥作用,何时选择一个?

===============>>#1 票数:0

以下是列表和向量之间的一些区别。

  1. 插入所花费的时间列表花费固定的时间将元素插入其中,因为如果vector的容量等于vector中存在的元素数,则向量在内部需要重新定位向量中存在的数据,然后再插入新值。 这给处理器和时间增加了开销。
  2. 访问数据所花费的时间 :向量在这方面占据上风。 向量需要恒定的时间来访问中间的元素。 清单中的as列表需要遍历该列表才能到达所需的元素。
  3. 容器占用的内存:向量的容量和大小不必一定相同。 向量的容量以指数方式增长,消耗的内存比容器实际需要的更多。 列表占用与存储元素完全相同的内存,因此在分配过程中不会分配额外的内存来节省内存。

  ask by Kev translate from so

未解决问题?本站智能推荐:

关注微信公众号