使用STL列表和向量,链表和数组的优点/缺点

时间:2013-04-16 23:38:27

标签: arrays list data-structures vector linked-list

我想知道STL:list,STL:vector,array和基本级别的链表之间的区别是什么。

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

我可能错过了很多其他的关键差异,所以你也可以指出一些更明显的差异。

如何比较列表和向量,以及何时选择其中一个?

1 个答案:

答案 0 :(得分:0)

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

  1. 插入时间:列表需要固定的时间插入 元素放入其中,因为内部需要将向量重新定位 如果插入了新值,则向量中存在的数据 向量的容量等于元素中存在的元素数量 向量。这会增加处理器和时间的开销。
  2. 访问数据所花费的时间:引导程序在以下位置占据上风: 这方面。向量需要恒定的时间来访问存在的元素 在中间。作为列表需要遍历列表的位置 达到所需的元素。
  3. 容器占用的内存:向量的容量和大小 不一定需要相同。向量的容量增长 指数型实习生消耗的内存比实际需要的更多 容器。列表占用的存储空间完全相同 元素,因此在分配期间不会分配额外的内存 您可以节省内存。