简介
list是一个顺序容器,它的元素在任意位置的插入和删除操作是固定的时间,并且支持正向和逆向遍历。
list的底层实现是一个双向链表,元素存储在并不连续的内存上,通过记录相连元素的指针,来保证顺序;其实和forward_list很类似,但是forward-list更加小巧和快速。
和标准的顺序容器(array、deque、vector)相比,list在插入。删除、移动元素上表现得更加高效,所以在算法中大量使用。
list最主要的缺点就是不能根据位置直接访问元素,不论你想访问第几个元素,都必须从头部开始遍历。另外一个问题,就是它需要消耗更多的存储空间去存储连接关系。