一、list介绍
list实际上就是一个双向链表。
二、list的使用
2.1、list的构造函数
常用的构造方式
2.2list的迭代器
list的空间不是连续的,因此它不支持迭代器的+、-运算符。但是它支持++、--运算符。
list也存在用于迭代器的函数:begin()、end()、rbegin()、rend()。
2.3list的常用接口
empty() 判断list是否为空
size() 返回list存储数据的个数
front() 返回第一个元素
back() 返回最后一个元素
push_front/emplace_front() 在头部添加一个新元素
pop_front() 删除头部元素
push_back/emplace_back() 在尾部添加一个新元素
pop_back() 删除尾部元素
insert()/emplace() 在某个位添加一个新元素
erase() 删除某个元素
swap() 与其他的list进行数据交换
clear() 清除list中的所有元素
sort() 将list中的元素进行排序
此外,还有一些接口:
reverse() 反转list
merge() 合并两个有序list(合并后有序),被合并的list存储的元素会被删除
unique() 删除list中的重复值
remove() 删除所有指定的元素
splic() 将另一个list中的元素剪切到此list
三、list迭代器失效问题
list为链表结构,所以只有删除元素的时候,指向被删除的元素的迭代器才会失效。
四、list实现
https://gitee.com/you-fan-a/list-implementation