c++ list的front和pop_front的概念和使用案例

embedded/2025/2/7 3:08:36/

在 C++ 中,std::list 是一种双向链表容器,提供了对序列中元素的快速插入和删除操作。以下是 std::list 容器frontpop_front 方法的概念和使用案例。

front

  • 概念front 成员函数返回对 std::list 容器中第一个元素的引用。如果列表为空,则调用 front 是未定义的行为。

pop_front

  • 概念pop_front 成员函数移除 std::list 容器中的第一个元素。如果列表为空,则调用 pop_front 是未定义的行为。

使用案例

以下是一个简单的例子,演示了如何使用 frontpop_front 方法:

#include <iostream>
#include <list>
int main() {std::list<int> numbers;// 向列表中添加元素numbers.push_back(10);numbers.push_back(20);numbers.push_back(30);// 使用 front 获取第一个元素的引用std::cout << "列表的第一个元素是: " << numbers.front() << std::endl;// 移除列表的第一个元素numbers.pop_front();std::cout << "移除第一个元素后的列表第一个元素是: " << numbers.front() << std::endl;// 输出整个列表std::cout << "列表中的元素: ";for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

在这个例子中:

  1. 我们创建了一个 std::list<int> 类型的列表 numbers
  2. 使用 push_back 方法向列表中添加了三个整数。
  3. 使用 front 方法获取并打印列表的第一个元素,这里是 10
  4. 使用 pop_front 方法移除列表的第一个元素。
  5. 再次使用 front 方法获取并打印新的第一个元素,现在是 20
  6. 使用范围 for 循环遍历并打印列表中的所有元素。
    请注意,由于 std::list 是一个双向链表,pop_front 操作是非常快速的,它的时间复杂度是常数时间 O(1)。同样,front 操作也是常数时间复杂度。但是,在使用这些方法之前,应该确保列表不为空,以避免未定义行为。

http://www.ppmy.cn/embedded/160187.html

相关文章

说一下JVM管理的常见参数

Java虚拟机&#xff08;JVM&#xff09;有许多常见参数&#xff0c;用于控制其行为和性能。以下是一些常见的JVM参数及其说明&#xff1a; 1. 内存管理参数 -Xms<size> START 设置初始堆内存大小。例如&#xff0c;-Xms512m表示初始堆大小为512MB。 -Xmx<size>…

SSM开发(九) mybatis多表查询(举例说明)

目录 一、背景 二、一对一查询 三、一对多查询 一、背景 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 mysql表设计: 二、一对一查询 一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户 实体: @Data public class Order {pr…

Java 进阶 01 —— 5 分钟回顾一下 Java 基础知识

Java 进阶 01 —— 5 分钟回顾一下 Java 基础知识 Java 生态圈Java 跨平台的语言 Java 虚拟机规范JVM 跨语言的平台多语言混合编程两种架构 举例 JVM 的生命周期 虚拟机的启动虚拟机的执行虚拟机的退出 JVM 发展历程 Sun Classic VMExact VMHotSpotBEA 的 JRockitIBM 的 J9 …

04树 + 堆 + 优先队列 + 图(D1_树(D6_B树(B)))

目录 一、学习前言 二、基本介绍 三、特性 1. 从概念上说起 2. 举个例子 四、代码实现 节点准备 大体框架 实现分裂 实现新增 实现删除 五、完整源码 一、学习前言 前面我们已经讲解过了二叉树、二叉搜索树&#xff08;BST&#xff09;、平衡二叉搜索树&#xff08…

vscode软件操作界面UI布局@各个功能区域划分及其名称称呼

文章目录 abstract检查用户界面的主要区域官方文档关于UI的介绍 abstract 检查 Visual Studio Code 用户界面 - Training | Microsoft Learn 本质上&#xff0c;Visual Studio Code 是一个代码编辑器&#xff0c;其用户界面和布局与许多其他代码编辑器相似。 界面左侧是用于访…

SQL进阶实战技巧:某芯片工厂设备任务排产调度分析 | 间隙分析技术应用

目录 0 技术定义与核心原理 1 场景描述 2 数据准备 3 间隙分析法 步骤1:原始时间线可视化

Android学习21 -- launcher

1 前言 之前在工作中&#xff0c;第一次听到launcher有点蒙圈&#xff0c;不知道是啥&#xff0c;当时还赶鸭子上架去和客户PK launcher的事。后来才知道其实就是安卓的桌面。本来还以为很复杂&#xff0c;毕竟之前接触过windows的桌面&#xff0c;那叫一个复杂。。。 后面查了…

【自动化办公】批量图片PDF自定义指定多个区域识别重命名,批量识别铁路货物运单区域内容改名,基于WPF和飞桨ocr深度学习模型的解决方案

项目背景介绍 铁路货运企业需要对物流单进行长期存档&#xff0c;以便后续查询和审计。不同的物流单可能包含不同的关键信息&#xff0c;通过自定义指定多个区域进行识别重命名&#xff0c;可以使存档的图片文件名具有统一的规范和明确的含义。比如&#xff0c;将包含货物运单…