【问题标题】:Pros/Cons of using STL lists and vectors, linked lists and arrays使用 STL 列表和向量、链表和数组的优缺点
【发布时间】:2013-04-16 23:38:27
【问题描述】:

我想知道 STL:list、STL:vector、数组和链表在基本层面上的区别是什么。

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

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

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

【问题讨论】:

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


【解决方案1】:

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

  1. 插入时间:列表需要固定时间来插入 元素到它们中,因为向量内部需要重新定位 数据在插入新值之前存在于向量中,如果 向量的容量等于存在于 向量。这需要处理器和时间的开销。
  2. 访问数据所花费的时间:Vectors 在 这方面。向量需要恒定的时间来访问存在的元素 在中间。列表需要遍历列表的位置 到达所需的元素。
  3. 容器占用的内存:vector的容量和大小 不一定需要相同。向量容量增长 实习生消耗的内存比实际需要的多 容器。列表占用存储所需的完全相同的内存 元素,因此在分配期间不会分配额外的内存 可以节省内存。

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2016-01-20
    • 1970-01-01
    • 2018-01-13
    • 2011-03-02
    • 2013-10-13
    • 2022-01-22
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多