探秘 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的构造
构造的list中包含n个值为val的 元素
构造了10个1的元素
构造空的list
空构造,也会构造一个哨兵位节点,方便后面插入数值。
不管是空构造还是构造有元素的,都会构造一个哨兵位节点。
list li;
拷贝构造函数
下面我们可以看到,li拷贝构造给li2
用[first, last)区间中的元素构造 list
也就是用迭代器区间构造list
begin从li的第一个位置的元素开始,到end最后一个位置的元素,构造给li2
list iterator的使用
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.
下面我们可以看到,不是空返回false,就是0,是空返回true就是1.
【size 】返回list中有效节点的个数
下面我们可以看到,有效个数是7,就是有7个元素。