C++--STL库-List

发布时间:2026/9/21 9:36:08

C++--STL库-List 目录1.list 的基本使用1.1 创建和初始化1.2. 插入元素1.3. 删除元素1.4. 访问元素1.5 遍历1.6 总结list是C标准库STL中的双向链表容器属于list头文件。它的特点是动态大小可以随时插入或删除元素不需要手动管理内存。双向链表每个节点都连接前后两个节点支持双向遍历。高效插入删除插入和删除的时间复杂度是O(1)比vector快vector可能会移动大量元素。随机访问慢不像vector可以直接访问vec[i]list只能顺序遍历O(n)。1.list的基本使用1.1创建和初始化std::listint lst1; // 创建空 list std::listint lst2 {1, 2, 3, 4, 5}; // 用初始化列表创建 std::listint lst3(5, 100); // 创建 5 个元素每个值都为 100 std::listint lst4(lst2); // 拷贝构造1.2. 插入元素lst.push_back(10); // 尾部插入 10 lst.push_front(5); // 头部插入 5 auto it lst.begin(); std::advance(it, 2); // 迭代器前进 2 步 lst.insert(it, 99); // 在第 3 个位置插入 991.3. 删除元素lst.pop_back(); // 删除最后一个元素 lst.pop_front(); // 删除第一个元素 auto it lst.begin(); std::advance(it, 1); lst.erase(it); // 删除第二个元素 lst.remove(3); // 删除所有值为 3 的元素 lst.clear(); // 清空 list1.4. 访问元素std::cout lst.front(); // 访问第一个元素 std::cout lst.back(); // 访问最后一个元素1.5 遍历// 方式 1使用范围 for for (int num : lst) { std::cout num ; } // 方式 2使用迭代器 for (std::listint::iterator it lst.begin(); it ! lst.end(); it) { std::cout *it ; }1.6 总结区别vector动态数组list双向链表底层结构动态数组连续内存双向链表分散存储访问速度随机访问快 (O(1))随机访问慢 (O(n))插入删除尾部操作快 (O(1))中间插入/删除慢 (O(n))任意位置插入/删除快 (O(1))内存使用连续存储节省空间但可能需要扩容每个节点有额外指针开销内存占用较大遍历方式支持 []可用 、- 运算符只能用迭代器 或 --pair这是 C 标准库里的“对组”或“二元组”。它里面可以装两个不同类型的数据。比如pairint, string就是“一个整数 一个字符串”捆绑在一起。list这就是我们刚才聊的链表容器双向链表。合在一起listpairA, B意思就是——这个链表里每一个节点存储的数据不再是一个普通的数字而是一个“小包裹”pair。
延伸阅读

更多相关文章

2026/9/20 2:14:03

S7-200 PLC与MCGS在污水处理液位控制中的应用

1. 污水处理液位控制系统概述 在工业自动化领域,PLC控制系统因其稳定性和可靠性被广泛应用于各类过程控制场景。污水处理厂的液位控制就是一个典型案例,它需要精确控制不同处理池的液位高度,确保处理流程顺畅进行。S7-200系列PLC作为西门子的…

2026/9/19 10:40:05

C# WinForm连连看游戏开发:从零实现GDI+绘图与连通算法

1. 项目概述与核心价值 最近在整理硬盘时,翻出了十几年前刚学C#时写的一个小项目——窗体版的连连看游戏。当时为了搞懂每一个细节,几乎给每一行代码都加上了注释。现在回头看,这个项目虽然简单,但麻雀虽小五脏俱全,它…

2026/9/19 21:09:18

VC++ MFC自定义图像按钮开发:从Owner Draw原理到实战实现

1. 项目概述:从零打造一个带自定义图像的VC按钮 在Windows桌面应用开发中,按钮控件是最基础也是最常用的交互元素之一。然而,系统默认的灰色矩形按钮,在如今追求界面美观和用户体验的时代,常常显得格格不入。你是否想过…

2026/9/21 3:28:31

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/21 3:33:19

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/21 0:02:23

OpenResearch:构建可复现的开放式研究工作流

第一次看到“OpenResearch”这个名字,我脑子里冒出的不是某个具体软件,而更像一种研究方式的宣言:开放、可复现、可验证。这三件事放在一起,其实比大多数人想象中难得多。过去几年我一直在折腾自己的研究工作流,从纯纸…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码