个人主页:落叶
当前专栏:C++专栏
目录
【push_front】在list首元素前插入值为val的元素
【insert】在list position 位置中插入值为val的元素
list的介绍及使用
list的介绍
list底层就是一个双向循环链表。
forward_list底层是单链表,用法都差不多一样。

list的使用
list中的接口比较多,此处类似,只需要掌握如何正确的使用,然后再去深入研究背后的原理,已 达到可扩展的能力。以下为list中一些常见的重要接口。
list的构造
| 构造函数( (constructor)) | 接口说明 |
| list (size_type n, const value_type& val = value_type()) | 构造的list中包含n个值为val的 元素 |
| list() | 构造空的list |
| list (const list& x) | 拷贝构造函数 |
| list (InputIterator first, InputIterator last) | 用[first, last)区间中的元素构造 list |
构造的list中囊括n个值为val的 元素
构造了10个1的元素

构造空的list
空构造,也会构造一个哨兵位节点,方便后面插入数值。
不管是空构造还是构造有元素的,都会构造一个哨兵位节点。
list li;
拷贝构造函数
通过下面我们能够看到,li拷贝构造给li2

用[first, last)区间中的元素构造 list
也就是用迭代器区间构造list
begin从li的第一个位置的元素开始,到end最后一个位置的元素,构造给li2

list iterator的使用
| 函数声 明 | 接口说明 |
| begin + end | 返回第一个元素的迭代器+返回最后一个元素下一个位置的迭代器 |
| rbegin + rend | 返回第一个元素的reverse_iterator,即end位置,返回最后一个元素下一个位 置的reverse_iterator,即begin位置 |

在哨兵位。就是begin是在1这个位置,end

【注意】 1. begin与end为正向迭代器,对迭代器执行++操作,迭代器向后移动 2. rbegin(end)与rend(begin)为反向迭代器,对迭代器执行++操作,迭代器向前移动。
【begin+end】
下面从begin位置开始打印,end位置结束。

【rbegin+ rend】反向迭代器
指向最后一个位置的元素。就是begin就
end就是指向第一个位置的元素。

list capacity
| 函数声明 | 接口说明 |
| empty | 检测list是否为空,是返回true,否则返回false |
| size | 返回list中有效节点的个数 |
否为空就是【empty】检测list
是空返回true,不是空就返回false.
下面我们可以看到,不是空返回false,就是0,是空返回true就是1.

【size 】返回list中有效节点的个数
下面我们能够看到,有效个数是7,就是有7个元素。

list element access
| 函数声明 | 接口说明 |
| front | 返回list的第一个节点中值的引用 |
| back | 返回list的最终一个节点中值的引用 |
浙公网安备 33010602011771号