文章目录
list
的本质就是带头双向循环列表
1.基本构造和插入删除
基本构造和尾插数据
与之前vector
的方法相同直接调用即可
迭代器的分类
- 功能分类:
迭代器名称 | 迭代器类型 |
---|---|
正向迭代器 | iterator |
反向迭代器 | reverse_iterator |
const 迭代器 |
const_iterator /const_reverse_iterator |
- 性质分类:
方向 | 支持运算符 | 对应迭代器的类型 |
---|---|---|
单向 | 只支持++ |
forward_list /unordered_map ... |
双向 | 在方向上面支持 ++ /-- 不支持+ /= |
list /map /set ... |
随机 | 支持++ /-- /+ /- |
vector /string /deque ... |
内置排序sort
std
中有排序的算法,可以直接用来排任意类型的数据,使用时要包含头文件<algorithm>
,使用方法如下:
但是在list
中内置了排序,可以直接调用:
任意位置插入删除
这里不能再直接给值了,先找的插入的节点的位置在进行插入
例如:
当然也可以用std::find来查找
2.链表的合并,去重和剪切
链表的合并
将两个链表和到一起,但是两一个链表会置空:
链表去重
将链表的重复数据删除,例如:
链表的剪切
将链表的数据剪切到另一个上,要注意的是第一个参数为迭代器