【问题标题】:Difference between vector and list [duplicate]向量和列表之间的区别[重复]
【发布时间】:2015-08-11 07:38:49
【问题描述】:

我正在学习 c++ 语言,并试图找出向量和列表之间的区别。 我正在使用 Visual Studio 工具进行编码。有人可以解释有什么区别吗?

【问题讨论】:

标签: c++ visual-studio-2012 visual-c++


【解决方案1】:

vector 是一个可调整大小的数组。它的元素彼此相邻存储在一个连续的内存块中,因此可以快速计算每个元素的位置;这称为随机访问。从中间插入和删除元素需要移动所有后面的元素,因此可能相当慢。

list 是一个链表。元素分散在内存中,每个元素都有指向下一个和前一个元素的指针。您只能通过指针链找到一个元素,这可能会很慢;这称为顺序访问。但是只需要修改几个指针就可以插入和删除元素,速度很快。

【讨论】:

    【解决方案2】:

    以下是一些 STL 容器以及它们的高效之处:

    • vector:动态数组——高效随机访问,最后添加/删除。
    • list : 双向链表——高效的前向/后向遍历和任何地方的插入。
    • forward_list : 单链表——高效的前向遍历和任何地方的插入。
    • deque:双端队列——动态数组,也允许在开始时有效地添加/删除
    • array : 静态数组 -- 大小在编译时固定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 2011-04-08
      • 2012-11-24
      • 2013-06-05
      相关资源
      最近更新 更多