list是一个双向链表,可以在常数时间内插入和删除,不支持数组表示法和随机访问。使用list时,需要引入头文件#include<list>.
- merge(b) 将链表b与调用链表合并,在合并之前,两个链表必须已经排序,合并后经过排序的链表被保存在调用链表中,b为空。
- remove(val) 从链表中删除值为val的所有节点
- splice(pos,b) 将链表b的内容插入pos的前面,b为空。
- reverse() 将链表翻转。
- sort(cmp) 将链表按cmp规则排序
- unique() 将连续的相同元素压缩成单个元素。不连续的相同元素无法压缩,因此一般先排序后去重。
- push_front(x)/push_back(x) x从链表头或尾入。
- pop_front()/pop_back() 从链表头或尾出
- front()/back() 返回链表头或尾元素
- clear() 清空链表
- insert(a,x) 在a(迭代器)位置插入数据x,返回新数据的位置
- insert(a,n,x) 在a(迭代器)位置插入n个数据x,无返回值
- insert(a,deg,end) 在a(迭代器)位置插入[deg,end)区间的数据,无返回值
- erase(deg,end) 删除[deg,end)区间(迭代器)的数据,返回下一数据的位置
- erase(a) 删除a(迭代器)位置的数据,返回下一数据的位置
1.构造函数
list<T> lst;
list<beg,end>; //将[beg,end)区间中的元素拷贝给本身
list(n,x); //将n个x拷贝给本身
list(const list &lst); //拷贝构造函数
2.赋值和交换
assign(beg,end); //将[beg,end)区间中的元素拷贝赋值给本身
assign(n,x); //将n个x拷贝赋值给本身
list & operator=(const list &list); //重载等号运算符
swap(lst); //将lst与本身元素互换
3.大小操作
a.resize(5); //设置向量的大小为5,默认填充值为0
a.resize(5,15);//设置向量的大小为5,默认填充值为15