news 2026/7/17 6:19:41

C++中的std::list<T>详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++中的std::list<T>详解

目录

1、std::list的基本概念

2、std::list的结构定义(简化)

3、std::list的核心特性

4、std::list的常用函数

4.1 构造和赋值

4.2 添加元素

4.3 删除元素

4.4 访问元素

4.5 遍历

4.6 迭代器与移动

4.7 容量相关

4.8 排序/去重/反转

4.9 splice(list 的灵魂)

5、std::list的迭代器

6、什么时候用 std::list?(决策表)

7、std::list的使用

8、总结


非AI生成,觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官。
由于能力水平有限,文中的错误或不严谨的地方在所难免,还请批评指正。

1、std::list的基本概念

std::list双向链表(doubly linked list),底层是节点式结构,不是连续内存。

2、std::list的结构定义(简化)

template<typename T>
struct Node {
    T value;
    Node* prev;
    Node* next;
};

3、std::list的核心特性

特性

说明

底层结构

双向链表

随机访问

❌ 不支持[]/at()

插入删除

✅ O(1)(已知位置)

内存布局

❌ 不连续,cache 不友好

迭代器稳定性

✅ 插入/删除不影响其他迭代器

内存开销

❌ 每个元素两个指针

4、std::list的常用函数

4.1 构造和赋值

std::list<int> l1;                        // 空
std::list<int> l2 = {1,2,3};              // 初始化列表
std::list<int> l3(10, 42);                // 10 个 42
std::list<int> l4(l2);                    // 拷贝
std::list<int> l5(l2.begin(), l2.end());  // 区间构造

4.2 添加元素

1.头部添加元素

ls.push_front(1);   // 头插 O(1)
ls.push_back(2);    // 尾插 O(1)

ls.emplace_front(1, 2); // 直接在头部构造
ls.emplace_back(3, 4);  // 直接在尾部构造
emplace_*优于push_*(少一次拷贝/移动)

2.在迭代器位置插入
auto it = ls.begin();
ls.insert(it, 10);               // 插入一个
ls.insert(it, 3

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 6:14:44

计算机启动过程详解:从硬件初始化到系统加载

1. 计算机启动过程全景解析当你按下电脑电源键的那一刻&#xff0c;这台看似普通的电子设备便开始执行一系列精密而复杂的启动流程。作为计算机领域的核心机制&#xff0c;启动过程完美诠释了硬件与软件的协同工作艺术。从底层硬件初始化到操作系统完全加载&#xff0c;每个环节…

作者头像 李华
网站建设 2026/7/17 6:10:58

TVA赋能下的具身智能技术进阶之路(18)

前沿技术介绍&#xff1a;AI智能体视觉&#xff08;TVA&#xff0c;Transformer-based Vision Agent&#xff09;是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术&#xff0c;属于“物理AI” 领域的一种全新技术形态&#xff0c;完成了从“虚拟世界”到“…

作者头像 李华
网站建设 2026/7/17 6:10:01

TVA:具身智能技术生态的强力引擎(3)

前沿技术介绍&#xff1a;AI智能体视觉&#xff08;TVA&#xff0c;Transformer-based Vision Agent&#xff09;是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术&#xff0c;属于“物理AI” 领域的一种全新技术形态&#xff0c;完成了从“虚拟世界”到“…

作者头像 李华
网站建设 2026/7/17 6:08:49

AI助理为何不够智能?情境感知技术解析

1. AI助理的"盲区"&#xff1a;为什么它们总显得不够智能&#xff1f;我最近在调试一个智能家居系统时&#xff0c;对着语音助手连续说了三遍"打开客厅灯"&#xff0c;它却始终回复"抱歉&#xff0c;我没有听懂"。直到我意识到——当时正在用吸尘…

作者头像 李华
网站建设 2026/7/17 6:06:29

梁山派学习笔记1

BOOT配置 BOOT是什么 1. 最简单比喻&#xff1a;开机选系统 你可以把STM32单片机想象成一台小电脑&#xff1a; 电脑开机可以选&#xff1a;Windows、U盘启动盘、PE维护系统&#xff1b; 单片机上电&#xff0c;靠 BOOT引脚 选「从哪里读程序运行」&#xff0c;这两个引脚就叫B…

作者头像 李华
网站建设 2026/7/17 6:01:36

从零实现MINIX文件系统解析器:深入理解磁盘数据组织原理

1. 项目概述&#xff1a;从零构建一个经典文件系统最近在整理硬盘时&#xff0c;翻出了大学时期的一个老项目——用C语言实现一个MINIX 1.0文件系统的解析器。这让我想起了当年啃《操作系统&#xff1a;设计与实现》那本“大砖头”的日子。MINIX&#xff0c;这个由Andrew S. Ta…

作者头像 李华