前言
"打牢基础,万事不愁" .C++的基础语法的学习
引入
序列容器的学习.以<C++ Prime Plus> 6th Edition(以下称"本书")内容理解
本书中容器内容不多只有几页.最好是有数据结构方面的知识积累,如果没有在学的同时补上.
序列容器回顾:序列容器内元素按严格线性顺序排列,至少是正向迭代器(含以上).序列容器包括deque(双端队列),forward_list(单链表),list(双向链表),queue(队列),priority_queue(优先队列),stack(栈),vector(动态数组),array(替代数组的容器
list(双向链表)
list所占篇幅相对其他容器类算比较大的,而且有专属的api介绍.
list双向链表,和单链表比较起来,在结点上多了个指向前面一个元素的指针.
本书内容解读
第1部分: list模板类(在list头文件中声明)表示双向链表。除了第一个和最后一个元素外,每个元素都与前后的元素相链接,这意味着可以双向遍历链表。list和vector之间关键的区别在于,list在链表中任一位置进行插入和删除的时间都是固定的(vector模板提供了除结尾处外的线性时间的插入和删除,在结尾处,它提供了固定时间的插入和删除)。因此,vector强调的是通过随机访问进行快速访问,而list强调的是元素的快速插入和删除 (本书原话)
----蓝色部分是list应用场景,切记
----代码和解读:
注意:下列代码为了练手,试图重现逻辑,不保证准确.
template<class T>
class list{
enum{MAX=10}
int lsize; //list最大元素数量
int items; //list内当前的元素个数
class Node{ //声明结点类
public: //结点数据向外部类公开
T t;