当前位置: 首页 > news >正文

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::list<int> lst1;                  // 创建空 list
std::list<int> lst2 = {1, 2, 3, 4, 5}; // 用初始化列表创建
std::list<int> lst3(5, 100);           // 创建 5 个元素,每个值都为 100
std::list<int> 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 个位置插入 99

1.3. 删除元素

lst.pop_back();   // 删除最后一个元素
lst.pop_front();  // 删除第一个元素

auto it = lst.begin();
std::advance(it, 1);
lst.erase(it);    // 删除第二个元素

lst.remove(3);    // 删除所有值为 3 的元素
lst.clear();      // 清空 list

1.4. 访问元素

std::cout << lst.front(); // 访问第一个元素
std::cout << lst.back();  // 访问最后一个元素

1.5 遍历

// 方式 1:使用范围 for
for (int num : lst) {
    std::cout << num << " ";
}

// 方式 2:使用迭代器
for (std::list<int>::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))
内存使用连续存储,节省空间,但可能需要扩容每个节点有额外指针开销,内存占用较大
遍历方式支持 [],可用 +、- 运算符只能用迭代器 ++ 或 --

 

相关文章:

  • 华为昇腾服务器部署deepseek的坑
  • QT移植,交叉编译至泰山派RK3566开发板,.pro文件解析
  • Docker安装Minio对象存储
  • 文 章 索 引
  • MySQL——数据库约束
  • 智能博弈与体系对抗
  • Golang 面试题
  • C#从零开始学习(图文教程),持续更新中~
  • Docker报错:https://registry-1.docker.io/v2/
  • TexTCNN
  • 【MySQL系列文章】Linux环境下安装部署MySQL
  • 基于 Java + SSM + JSP 的百货中心供应链管理系统设计与实现
  • 用deepseek学大模型04-机器学习建模过程
  • 排序与算法:选择排序
  • MySQL的基本使用
  • 了解SQL Server不同版本(如Express、Standard、Enterprise)的功能差异和适用场景。
  • LLM论文笔记 12: Teaching Arithmetic to Small Transformers
  • Linux-C/C++《C/7、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)
  • WordPress Ai插件:支持提示词生成文章和chat智能对话
  • 深入解析 Flutter Bloc:从原理到实战
  • 广东高州发生山体滑坡,造成2人遇难4人送医救治1人失联
  • 视频丨为救心梗同学缺席职教高考的小伙姜昭鹏完成补考
  • 上博东馆常设陈列入选全国博物馆“十大精品”
  • 玛丽亚·凯莉虹口连唱两夜,舞台绽放唤醒三代人青春记忆
  • 多个“首次”!上市公司重大资产重组新规落地
  • 俄乌直接谈判结束,乌称“毫无成果”