> 技术文档 > 探秘 C++ list:在复杂数据管理的编程世界里,它宛如灵动的魔法链条,高效实现元素频繁增删,有序维系数据秩序,无论是海量动态数据缓存、游戏角色属性集处理,还是复杂任务调度编排_c++ list数据管理

探秘 C++ list:在复杂数据管理的编程世界里,它宛如灵动的魔法链条,高效实现元素频繁增删,有序维系数据秩序,无论是海量动态数据缓存、游戏角色属性集处理,还是复杂任务调度编排_c++ list数据管理


🌟个人主页:落叶

🌟当前专栏:C++专栏


目录

list的介绍及使用

list的介绍

list的使用

list的构造

构造的list中包含n个值为val的 元素

构造空的list

拷贝构造函数

用[first, last)区间中的元素构造 list

list iterator的使用

【begin+end】

【rbegin+ rend】反向迭代

list capacity

【empty】检测list是否为空

【size 】返回list中有效节点的个数

list element access

【front】返回list的第一个节点中值的引用

【back 】返回list的最后一个节点中值的引用

list modifiers

【push_front】在list首元素前插入值为val的元素

【pop_front】删除list中第一个元素

【push_back】在list尾部插入值为val的元素

【pop_back】删除list中最后一个元素、

【insert】在list position 位置中插入值为val的元素

【erase】删除list position位置的元素

【swap】交换两个list中的元素

【clear】清空list中的有效元素

list的迭代器失效

list的模拟实现

模拟实现list

list.h

list的反向迭代器

list与vector的对比

迭代器(单向迭代器-双向迭代器-随机访问迭代器)

单向迭代器

双向迭代器

随机访问迭代器


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

函数声明 接口说明