STL提供的list容器实现了双向链表的功能。因此,list容器中的各个元素都是双向链表中的节点,可以很方便地插入和删除元素,但是无法对容器中的元素进行随机存取,必须从容器的头部或尾部遍历。list容器在序列中的任何位置增删元素都是非常高效率的,并可以在需要的时候任意改变自身容量的大小。
1、list容器的定义:
关于如何构造一个list对象,STL提供了多种构造方法:
list<type> name;//构建一个空对象 list<type> name(size);//构建一个初始大小为size的对象 list<type> name(size, value);//构建一个初始大小为size,且初值为value的对象 list<type> name(first, last);//根据迭代器first和last构建一个有范围的对象
需要注意的是,使用list容器必须包含stl头文件:
#include <list>
2、list容器的赋值:
同vector和deque类似,list也提供了在头端和末端插入和删除对象的方法,分别是push_front(),push_back(),pop_front()和pop_back()。使用的方法同前述容器类似,不再赘述。
除此之外,list还定义一个函数,将list中的元素反向储存。
void reverse();
3、list容器的大小度量:
也同vector和deque容器类似的是,list也提供了度量容器大小的方法,分别是size(), resize()和max_size(),分别用于显示容器当前元素的个数、重新设置容器的容量、返回容器允许的最大容量。
4、返回方法:
分别有三组:front,back; begin,end; rbegin,rend;第一组方法返回的是首尾元素的引用,第二组方法返回的是首尾迭代器,而第三组返回的是末尾和头部的反向迭代器。
5、list容器中元素的访问:
由于list容器无法线性存取,因此访问list中的元素只能通过迭代器的方法;
6、插入和删除操作:
初push和pop操作外,定义了insert、erase、clear方法,分别用于在链表中插入元素、删除某个元素、清空链表。
时间: 2024-09-23 18:29:24