c++ stl中的std::list是基于双向链表实现的序列容器,和连续内存存储的vector不同,它支持常数时间复杂度的任意位置插入、删除操作,非常适合需要频繁修改节点内容的业务场景,新手只要掌握核心常用函数就能快速上手使用。

一、基础构造与初始化
std::list的初始化方式非常灵活,最常用的几种如下:默认构造可以创建一个空链表:`std::list
二、核心增删操作
增删是std::list最常用的操作,头尾操作都是o(1)复杂度:`push_back(elem)`从链表尾部插入元素,`push_front(elem)`从头部插入,`pop_back()`/`pop_front()`分别删除尾部、头部元素。任意位置操作使用`insert(pos_it, elem)`,会在迭代器`pos_it`指向的节点前插入新元素,返回新元素的迭代器;删除操作对应`erase(it)`删除指定迭代器的节点,`remove(val)`会删除链表中所有值等于`val`的节点,这是非常实用的批量删除方法;最后可以用`clear()`清空整个链表,`empty()`判断链表是否为空,`size()`获取当前链表的元素数量,满足基础状态查询需求。
三、遍历与元素访问
std::list不支持随机访问,因此不能使用`[]`下标运算符或者`at()`函数访问任意位置元素,常规遍历可以用范围for,写法简洁直观:`for (auto num : my_list) { std::cout << num; }`,需要修改元素时加引用即可,写法为`for (auto& num : my_list)`,也可以用双向迭代器遍历,从`begin()`到`end()`逐个访问节点。只有头尾元素支持o(1)直接获取:`front()`返回头元素的引用,`back()`返回尾元素的引用,满足快速获取端点元素的需求。
四、常用工具函数
排序不需要使用标准库的通用`std::sort`,std::list自带适配链表结构的更高效成员函数`sort()`,默认升序排序,传入比较器即可实现自定义排序,比如降序可以写`my_list.sort(std::greater
掌握以上这些常用函数,就能覆盖绝大多数std::list的使用场景,快速发挥双向链表在频繁修改场景下的性能优势,全文约790字。



































