一、list概述
总的来说:环形双向链表
特点:
底层是使用链表实现的,支持双向顺序访问
在list中任何位置进行插入和删除的速度都很快
不支持随机访问,为了访问一个元素,必须遍历整个容器
与其他容器相比,额外内存开销大
设计目的:令容器在任何位置进行插入和删除都很快
何时使用:
容器需要不断地在中间插入或删除元素
无论删除还是增加,list的迭代器、引用、指针都不会失效
与其他容器的比较:
vector | 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 |
deque | 双端队列。支持快速随机访问。在头尾插入/删除速度很快 |
list | 双向链表。只支持双向顺序访问。在list中任何位置进行插入和删除的速度都很快 |
forward_list | 单向链表。只支持单向顺序访问。在链表任何位置进行插入和删除操作速度都很快 |
array | 固定大小数组。支持快速随机访问。不能添加或删除元素 |
string | 与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入或删除速度快 |