【发布时间】:2015-08-11 07:38:49
【问题描述】:
我正在学习 c++ 语言,并试图找出向量和列表之间的区别。 我正在使用 Visual Studio 工具进行编码。有人可以解释有什么区别吗?
【问题讨论】:
-
我想你可以在google上找到很多详细的解释
标签: c++ visual-studio-2012 visual-c++
我正在学习 c++ 语言,并试图找出向量和列表之间的区别。 我正在使用 Visual Studio 工具进行编码。有人可以解释有什么区别吗?
【问题讨论】:
标签: c++ visual-studio-2012 visual-c++
vector 是一个可调整大小的数组。它的元素彼此相邻存储在一个连续的内存块中,因此可以快速计算每个元素的位置;这称为随机访问。从中间插入和删除元素需要移动所有后面的元素,因此可能相当慢。
list 是一个链表。元素分散在内存中,每个元素都有指向下一个和前一个元素的指针。您只能通过指针链找到一个元素,这可能会很慢;这称为顺序访问。但是只需要修改几个指针就可以插入和删除元素,速度很快。
【讨论】:
以下是一些 STL 容器以及它们的高效之处:
vector:动态数组——高效随机访问,最后添加/删除。list : 双向链表——高效的前向/后向遍历和任何地方的插入。forward_list : 单链表——高效的前向遍历和任何地方的插入。deque:双端队列——动态数组,也允许在开始时有效地添加/删除array : 静态数组 -- 大小在编译时固定。【讨论】: