一个容器就是一组特定类型对象的集合。顺序容器为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。
顺序容器概述
下表列出了标准库中的顺序容器,所有顺序容器都提供了快速顺序访问元素的能力。但是这些容器在以下方面都有不同的性能折中:
- 向容器中添加或从容器中删除元素的代价
- 非顺序访问容器中元素的代价
顺序容器类型 |
vector 可变大小数组、支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快 list 双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快 forward_list 单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快 array 固定大小的数组。支持快速随机访问。不能添加或删除元素 string 与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入/删除速度快 |
除了固定大小的array外,其他容器都提供高效、灵活的内存管理。我们可以添加和删除元素,扩张和收缩容器的大小。容器保存元素的策略对容器操作的效率有着固有的,有时是重大的影响。在某些情况下,存储策略还会影响特定容器是否支持特定操作。