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

C++STL容器之list

1.介绍

        list是标准模版库(STL)提供的一个双向链表容器。它允许在常数时间内进行插入或删除操作,但不支持随机访问。(即不能通过下边直接访问元素)。list是一个序列容器,适合需要频繁插入和删除操作的场景。

2.list特性

  • 双向链表:每个元素都包含指向前一个和后一个元素的指针。

  • 高效的插入和删除:在任意位置插入和删除元素的时间复杂度为 O(1)。

  • 不支持随机访问:不能通过下标直接访问元素,必须通过迭代器遍历。

  • 内存开销较大:由于每个元素需要存储前后指针,内存占用比 vector 大。

3.list用法

        (1)定义与初始化

std::list<int> myList; // 定义一个空的整数链表
std::list<int> myList2 = {1, 2, 3, 4, 5}; // 初始化链表
std::list<int> myList3(5, 10); // 创建一个包含 5 个元素,每个元素为 10 的链表

        (2)插入元素

myList.push_back(10); // 在末尾插入 10

myList.push_front(5); // 在开头插入 5

auto it = myList.begin();
std::advance(it, 2); // 移动迭代器到第 2 个位置
myList.insert(it, 7); // 在第 2 个位置插入 7

        (3)删除元素

myList.pop_back(); // 删除末尾元素

myList.pop_front(); // 删除开头元素

auto it = myList.begin();
std::advance(it, 2); // 移动迭代器到第 2 个位置
myList.erase(it); // 删除第 2 个位置的元素
myList.remove(10); // 删除所有值为 10 的元素

        (4)访问元素

int firstElement = myList.front(); // 获取第一个元素
int lastElement = myList.back();  // 获取最后一个元素

        (5)遍历链表

for (auto it = myList.begin(); it != myList.end(); ++it) {
    std::cout << *it << " ";
}

for (int val : myList) {
    std::cout << val << " ";
}

        (6)其他操作

if (!myList.empty()) { //判断是否为空
    std::cout << "List size: " << myList.size() << std::endl;
}

myList.sort(); // 排序
myList.reverse(); // 反转
myList.clear(); // 清空链表

4.适用场景

  • 需要频繁在中间位置插入或删除元素。

  • 不需要随机访问元素。

  • 对内存占用不敏感。

如有错误,敬请指正!!!

相关文章:

  • 基于Spring Boot的农产品智慧物流系统设计与实现(LW+源码+讲解)
  • 06.Docker 镜像制作和管理
  • 智能合约的部署
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_os_init 函数
  • 基于SpringBoot的智慧校园管理系统设计与实现的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • Spring BOOT 启动参数
  • UE5.3 C++ TArray系列(一)
  • 深蕾科技智能多媒体SoC产品助力“DataEye剧查查之夜”微短剧盛会
  • Linux自启动fastapi服务
  • Docker 性能优化指南
  • HashMap 详解
  • 学习路之微服务--PHP中实现微服务几种方式
  • LangChain:AI大模型开发与分布式系统设计
  • Blaze RangePartitioning 算子Native实现全解析
  • 【C++】:奇异递归模板模式
  • 【技术笔记】Cadence 创建元器件 Pin 引脚的创建与设置
  • MYSQL-数据库-DDL-DML-DQL-DCL-基础学习
  • SQL Server 中行转列
  • 使用GitLab和GitLab-Runner建立CICD流水线
  • Unity Shader Graph 2D - Procedural程序化图形之夹心圆环
  • 国家防汛抗旱总指挥部对15个重点省份开展汛前实地督导检查
  • 泽连斯基已离开土耳其安卡拉
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 农行回应“病重老人被要求亲自取钱在银行去世”:全力配合公安机关调查
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次
  • “大鼻子情圣”德帕迪约因性侵被判缓刑,还有新的官司等着他