list容器
文章目录
- list容器
- 一、头文件
- 二、基本概念
- 三、构造函数
- 四、赋值和交换
- 五、大小操作
- 六、插入和删除
- 七、存取操作
- 八、反转和排序
一、头文件
#include <list>
二、基本概念
功能: 将数据进行链式存储
链表(list) 是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的
链表的组成: 链表由一系列结点组成
结点的组成: 一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
STL中的链表是一个双向循环链表
三、构造函数
函数原型:
●list<T> lst;
//list采用采用模板类实现,对象的默认构造形式:
●list(beg, end);
//构造函数将[beg, end)区间中的元素拷贝给本身。
●list(n,elem);
//构造函数将n个elem拷贝给本身。
●list(const list& lst);
//拷贝构造函数。
四、赋值和交换
函数原型:
●assign(beg,end);
//将[beg, end)区间中的数据拷贝赋值给本身。
●assign(n, elem);
//将n个elem拷贝赋值给本身。
●list& operator=(const list &lst);
//重载等号操作符
●swap(lst);
//将|st与本身的元素互换。
五、大小操作
函数原型:
●size();
//返回容器中元素的个数
●empty();
//判断容器是否为空
●resize(num);
//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
●resize(num,elem);
//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
六、插入和删除
函数原型:
●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值匹配的元素。
七、存取操作
函数原型:
●front();
//返回第一个元素。
●back();
//返回最后一个元素。
八、反转和排序
函数原型:
●reversy();
//反转链表上
●sort();
//链表排序
sort 是list容器的成员函数,一般的算法sort是无法对非连续的内存空间数据进行排序