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

C++(24):容器类<list>

目录

一、核心概念

二、基本语法

1. 声明与初始化

2.添加元素

3.访问与遍历

4. 删除元素

三、特点

1. 高效插入/删除

2. 不支持随机访问

3. 特有成员函数

4. 内存与性能

四、示例代码

五、成员函数

六、使用场景

七、注意事项        


    

         Lists将元素按顺序储存在链表中.,与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。

一、核心概念

  <list> 是C++标准库中的 双向链表 容器,其核心特性如下:

  1. 双向链表结构
    每个元素(节点)包含两个指针,分别指向前一个和后一个节点,支持双向遍历。

  2. 非连续内存分配
    元素存储在离散的内存块中,插入/删除时只需调整指针,无需移动其他元素。

  3. 双向迭代器
    支持 ++ 和 -- 操作,但不支持随机访问(如 +n 或 [])。


二、基本语法

1. 声明与初始化
  • 包含头文件:#include <list>
  • std::list<T> mylist;,其中 T 是存储在列表中的元素类型。
#include <list>
using namespace std;// 声明一个整数链表
list<int> list1;                // 空链表
list<int> list2 = {1, 2, 3};    // 初始化列表
list<int> list3(5, 10);         // 包含5个10的链表:{10,10,10,10,10}
list<int> lst4 = {1, 2, 3, 4};   // 使用初始化列表
2.添加元素

        mylist.push_front(value):push_front()函数将val连接到链表的头部。

        mylist.push_back(value):push_back()将val连接到链表的最后。

        mylist.begin():begin()函数返回一个迭代器,指向list的第一个元素。

        insert()插入元素val到位置pos,或者插入num个元素val到pos之前,或者插入start到end之间的元素到pos的位置。返回值是一个迭代器,指向被插入的元素。

        advance 函数的作用

  • 是 <iterator> 头文件中的通用函数(需包含 <iterator>,但在 <list> 中已隐式包含)。

  • 适用于所有支持 ++ 操作的迭代器(如 list 的双向迭代器)。

  • 参数说明

    advance(迭代器, 移动步数);
    • 若步数为正数:向前移动。

    • 若步数为负数:向后移动(需迭代器支持 --

http://www.lryc.cn/news/2380255.html

相关文章:

  • 【C++】不推荐使用的std::allocator<void>
  • 基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
  • vue3 el-table实现字段可编辑
  • 基于React的高德地图api教程005:圆形标记的绘制、删除、修改
  • liunx定时任务,centos定时任务
  • 三种嵌入式开发常用的组网方式
  • ubuntu 20.04 ping baidu.coom可以通,ping www.baidu.com不通 【DNS出现问题】解决方案
  • 城市排水管网流量监测系统解决方案
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • YOLOv8 在单片机上的几种部署方案
  • 后端框架(1):Mybatis
  • linux下tcp/ip网络通信笔记1,
  • SqlHelper 实现类,支持多数据库,提供异步操作、自动重试、事务、存储过程、分页、缓存等功能。
  • 语音识别——声纹识别
  • window 显示驱动开发-报告图形内存(三)
  • 安全运维 -- linux磁盘挂载到windows
  • 使用 Apache POI 生成 Word 文档
  • 高防服务器流量“清洗”什么意思
  • UE5 GAS框架解析内部数据处理机制——服务器与客户端
  • Unity实用技能-UI定位总结
  • 开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战
  • 服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
  • 26、DAPO论文笔记(解耦剪辑与动态采样策略优化,GRPO的改进)
  • JQuery 禁止页面滚动(防止页面抖动)
  • Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
  • Halcon与C#:工业级机器视觉开发
  • Unity序列化字段、单例模式(Singleton Pattern)
  • 【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
  • 在 Java MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 的解决方法
  • 系统架构设计(十四):解释器风格