首页 > 后端开发 > C++ > 正文

C++ list用法详解_C++双向链表常用操作

尼克
发布: 2025-12-16 07:35:18
原创
243人浏览过
std::list是C++ STL中的双向链表容器,1. 需包含头文件,支持多种初始化方式;2. 提供push_front、push_back、insert等高效插入操作及pop_front、erase等删除操作,front和back可访问首尾元素;3. 不支持下标访问,需用迭代器或范围for循环遍历;4. 支持sort、reverse、unique、merge和splice等特殊操作,适合有序合并与去重;5. 适用于频繁中间增删和复杂结构调整场景,但不适用于频繁随机访问或内存敏感场合。

c++ list用法详解_c++双向链表常用操作

在C++中,std::list 是标准模板库(STL)提供的一个双向链表容器。它支持高效的插入和删除操作,特别适合频繁修改数据结构的场景。与 vector 和 deque 不同,list 的元素在内存中不是连续存储的,而是通过指针连接节点,因此随机访问效率较低,但中间位置的增删操作非常高效。

1. 头文件与基本定义

使用 list 需要包含头文件:

#include

定义方式如下:

  • std::list lst; // 存储整数的空链表
  • std::list dlst(5); // 包含5个默认值为0.0的元素
  • std::list<:string> slst{"a", "b", "c"}; // 初始化列表

2. 常用成员函数操作

list 提供了丰富的成员函数来管理元素:

立即学习C++免费学习笔记(深入)”;

插入操作:
  • lst.push_front(x):在链表头部插入元素 x
  • lst.push_back(x):在链表尾部插入元素 x
  • lst.insert(it, x):在迭代器 it 指向的位置前插入 x
删除操作:
  • lst.pop_front():删除第一个元素
  • lst.pop_back():删除最后一个元素
  • lst.erase(it):删除迭代器 it 指向的元素
  • lst.clear():清空所有元素
访问与查询:
  • lst.front():返回第一个元素的引用
  • lst.back():返回最后一个元素的引用
  • lst.empty():判断是否为空,返回 bool
  • lst.size():返回当前元素个数

3. 迭代器遍历

由于 list 不支持下标访问,必须使用迭代器进行遍历:

std::list<int> lst = {1, 2, 3, 4, 5};
for (auto it = lst.begin(); it != lst.end(); ++it) {
    std::cout << *it << " ";
}
登录后复制

也可以使用范围 for 循环(C++11 起):

Moshi Chat
Moshi Chat

法国AI实验室Kyutai推出的端到端实时多模态AI语音模型,具备听、说、看的能力,不仅可以实时收听,还能进行自然对话。

Moshi Chat 165
查看详情 Moshi Chat
for (const auto& val : lst) {
    std::cout << val << " ";
}
登录后复制

4. 特殊操作:合并、反转、去重

list 提供了一些特有的高效算法操作:

  • lst.sort():对链表内元素排序(注意:不是全局 sort 函数)
  • lst.reverse():反转链表顺序
  • lst.unique():去除连续重复元素(常用于已排序链表)
  • lst.merge(other):将另一个已排序链表合并进来,并保持有序
  • lst.splice(it, other, o_it):将 other 中某个元素移动到当前链表 it 位置前

这些操作都在原链表上进行,无需额外空间,效率很高。

5. 实际使用建议

list 最适合以下场景:

  • 需要频繁在序列中间插入或删除元素
  • 不关心元素的内存连续性
  • 经常做拼接、拆分、移动等复杂结构调整

不适合的场景:

  • 需要频繁随机访问某一下标元素(应使用 vector)
  • 内存占用敏感(每个节点有额外指针开销)
  • 追求缓存友好性(非连续存储导致缓存命中率低)

基本上就这些。std::list 在特定场合下非常有用,理解其特性有助于写出更高效的代码。

以上就是C++ list用法详解_C++双向链表常用操作的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号