list容器
list容器,双向链表和vector,deque不同的地方在于他是非连续性,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表有一系列结点组成,结点包含了指针域,数据域,
采用动态存储分配
1、list构造函数
list<T> list;//list采用模板类实现
list(beg,end);//构造函数将[beg,end)区间中的元素拷贝给本身
list(n,elem);//构造函数将n个elem拷贝构造给本身
list(const list &lst);//拷贝构造函数
2、list数据元素插入和删除操作
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值
clear();
erase(beg,end);//删除区间[beg,end)的数据,返回下一个数据的位置;
erase(pos);//删除pos位置的数据,返回下一个数据的位置
remove(elem);//删除容器中所有与elem相匹配的元素
3、list的大小操作
size();
empty();
resize(num);//重新定义容器的长度为num
resize(num,elem);//重新定义容器的长度为num,若容器变长,则以默认值填充新位置,若容器变短,则末尾超出容器长度的元素被删除
4、list赋值操作
assign(beg,end);//将[beg,end)区间中的数据拷贝赋值给本身
assign(n,elem);//将n个元素拷贝赋值给本身
list& oeprator=(const list &lst);//重载等号操作符
swap(list);//将list与本身元素互换
5、list数据的存取
front();//返回第一个元素
back();//返回最后一元素
6、list反转排列排序
reverse();//反转链表
sort();//list排序