c++入门笔记-list链表

本文介绍了C++ STL中的list链表,包括其基本概念、双向循环特性、优缺点分析以及常见操作如插入、删除、赋值、大小调整等。list在插入和删除操作上速度快,但空间占用较大,不支持随机访问。同时,它提供了反转和排序功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 list基本概念

功能:将数据进行链式存储

链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现

链表的组成:由一系列结点组成

结点的组成:一个是存储元素的数据域,另一个是存储下一个结点地址的指针域

stl中的链表是一个双向循环链表

双向:指针域中next指向了下一个结点 而prev指向了前一个结点

循环:循环在下面图片中没有展示出来 以下图为例 stl中第一个结点中prev指向的不是null而是最后一个结点 而最后一个结点的next指向的则是第一个结点 形成了循环结构

优点分析:数组输入时候需要移动数组 非常的麻烦 但是list链表却可以把新的结点直接链接到前后结点 所以速度比较快 同时list采用动态存储分配 不会造成内存浪费和溢出 list和vector也是最常中的两种容器

缺点分析:数组可以快速向后推移偏移指针在内存中找到下一个元素 但是链表却要通过本身结点的指针域去寻找下一个元素结点的地址

因为结点同时存储着数据和指针 所以所占用的空间就比数组大 

list有一个重要的性质 插入操作和删除操作都不会造成原有list迭代器的失效,这在ve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值