文章目录
一、forwad_list
1.forwad_list的介绍
2.forward_list的特点
1.不支持随机访问元素,访问头部元素速度快
2.forward_list和自己手写的c-style singly linked list相比,没必要自己造轮子
3.没有任何时间和空间上的额外开销,任何性质如果和这个目标抵触,我们该放弃该特征
4.任何位置插入元素或删除元素都很快,常量时间内完成
5.插入和删除不会造成迭代器失效
6,对于异常支持的好,出现异常除了成功就是什么影响都没有
using Group = std::forward_list;
3.forward_list不提供的函数
d.size();//forward_list不提供,不需要这个接口,有额外的开销来纪录大小
d.capacity();
d.reserve(100);
d.shrink_to_fig();
operator == != < > <= >=
4.元素访问,不能随机访问
有//表示不能使用
5.迭代器相关有影响
a.before_begin(); //返回第一个有效位置的前一个位置,这不是一个合法位置,不能放在算法里面用,只能自己用
6.删除和插入
b.erase_after();表示删除该位置的下一个位置的元素,一般会返回下一个迭代器的位置
第一个返回下一个迭代器的位置;
第二个删除头元素,返回void
第三个删除整个容器的元素,返回void
7.算法相关
举例:想在3之前插入一个元素