list基本概念
功能:将数据进行链式存储
链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现
链表的组成:由一系列结点组成
结点的组成:一个是存储元素的数据域,另一个是存储下一个结点地址的指针域
stl中的链表是一个双向循环链表
双向:指针域中next指向了下一个结点 而prev指向了前一个结点
循环:循环在下面图片中没有展示出来 以下图为例 stl中第一个结点中prev指向的不是null而是最后一个结点 而最后一个结点的next指向的则是第一个结点 形成了循环结构
优点分析:数组输入时候需要移动数组 非常的麻烦 但是list链表却可以把新的结点直接链接到前后结点 所以速度比较快 同时list采用动态存储分配 不会造成内存浪费和溢出 list和vector也是最常中的两种容器
缺点分析:数组可以快速向后推移偏移指针在内存中找到下一个元素 但是链表却要通过本身结点的指针域去寻找下一个元素结点的地址
因为结点同时存储着数据和指针 所以所占用的空间就比数组大
list有一个重要的性质 插入操作和删除操作都不会造成原有list迭代器的失效,这在ve