文章目录
一、list 的介绍
二、list 的基本操作
三、list 的用法
一、list 的介绍
list 是 STL 中的一个序列容器,实现的是双向链表,每个元素都有两个指针,分别指向元素的前驱和后继。
list 不需要指定内存大小,因为他存储在不连续的内存空间中,并由指针将他们连接在一起。
由于链表的特点,不能进行内部的随机访问,无法通过位置来访问元素,即不支持[ ] 操作符和vector.at() 操作,必须逐个遍历,可以通过开始元素或者最后一个元素遍历,它的查找要在O(n)的时间才能完成。但它允许序列快速在任意位置进行插入和删除操作作,包括在两边的pop()和push()操作。
二、list 的基本操作
使用STL标准库的 list 时,应包含头文件:#include
1、定义
list l声明一个空链表
list l{1,2,3}声明一个含指定元素的链表
list l(n) 声明一个含n个元素的链表并全部初始化为0
list l(n, m) 声明一个含n个元素的链表并全部初始化为m
list l(a,b) 声明一个链表并初始化为区间[a,b]中的元素,a、b是迭代器
2、基本操作
增:
l.insert() 插入一个元素到list中
l.push_back() 在list的末尾添加一个元素
l.push_front() 在list的头部添加一个元素
删:
l.clear() 清空list的所有元素
l.erase() 删除一个元素
l.erase(l.begin(),l.end()) 将l从begin()到end()之间的元素删除。
l.pop_back() 删除最后一个元素
l.pop_front() 删除第一个元素
l.remove() 从list删除指定元素
l.remove_if() 按指定条件删除元素
l.unique() 删除list中重复的元素
改:
l.resize() 改变list的大小
l.reverse() 把list的元素倒转
查:
l.front() 返回第一个元素
l.back() 返回最后一个元素
l.empty() 若list是空的则返回true,否则返回false
l.max_size() 返回list能容纳的最大元素数量
l.size() 返回lis