c++的list类
本篇将讲述list类中的各种重要和常用函数(begin()、end()、rbegin()、rend()、empty()、size()、front()、back()、push_front()、pop_front()、push_back()、pop_back()、insert()、erase()、resize()、clear()、splice()、remove()、unique()、sort()、reverse())
所有函数使用时应当包含list>。
如果对您有帮助还请多多点赞,要是文章有错误地方还请你在评论区留言指正。
一、list的创建
1.空容器构造函数(默认构造函数)
作用:构造一个没有元素的空容器。
用法:
![]()
2.填充构造函数

作用:构造一个包含 n 个元素的容器。每个元素都是 val 的副本。
用法:

list<int> l(5,0);
3.范围构造函数
作用:构造一个容器,其中包含与范围 [first,last] 一样多的元素,每个元素都按相同的顺序从该区域中的相应元素构造。
用法:创建一个list对象l2,初始值与l1中的元素相等。

list<int>l2(l1.begin(), l1.end());
4.复制构造函数
![]()
作用:以相同的顺序构造一个容器,其中包含 x 中每个元素的副本。
示例:创建一个list对象l2,其中包含l1中的每个元素。

list<int> l1(5,1);list<int>l2(l1);
二、list迭代器
list的迭代器是一种双向迭代器,即可以在头部和尾部进行访问
1.begin()和end()


begin()的作用:返回一个迭代器,该迭代器指向列表容器中的第一个元素。请注意,与返回对第一个元素的引用的成员 list::front 不同,此函数返回指向它的双向迭代器。如果容器为空,则不应取消引用返回的迭代器值。
end()的作用:序列末尾之后的元素的迭代器。如果 list 对象是 const 限定的,则该函数返回 const_iterator。否则,它将返回一个迭代器。成员类型 iterator 和 const_iterator 是双向迭代器类型(分别指向 element 和 const 元素)。
用法:将一个list的对象从头到尾遍历一遍。

list<int >l(6, 6);
list<int>::iterator it = l.begin();
for (; it != l.end(); it++)
{cout << *it << ' ';
}
2.rbegin()和rend()

rbegin()的作用:返回一个反向迭代器,该迭代器指向容器中的最后一个元素(即其反向开头)。反向迭代器向后迭代:增加它们会将它们移向容器的开头。

rend()的作用:返回一个反向迭代器,该迭代器指向列表容器中第一个元素之前的理论元素(被视为其反向端)。list::rbegin 和 list::rend 之间的范围包含容器的所有元素(按相反的顺序)。
用法:将list对象的元素从后往前遍历。

list<int >l;for (int i = 0; i < 6; i++){l.push_back(i);}list<int>::reverse_iterator it = l.rbegin();for (; it != l.rend(); it++){cout << *it << ' ';}
三、容量
1.empty()
![]()
作用:返回列表容器是否为空(即其大小是否为 0)。此函数不会以任何方式修改容器,非空返回0。
用法:判断l是否为空,是空返回非零的数值。

2.size()
![]()
作用:返回列表容器中的元素数。
用法:用size计算l中元素的个数。
list<int >l(4,0);cout<<l.size();
四、元素访问
1.front()

作用:返回对列表容器中第一个元素的引用。与返回同一元素的迭代器的成员 list::begin 不同,此函数返回直接引用。

list<int>l;for (int i = 0; i < 6; i++){l.push_back(i);}cout << l.front();
2.back()

作用: 返回对列表容器中最后一个元素的引用。与返回此元素之后的迭代器的成员 list::end 不同,此函数返回直接引用。
用法:输出l中的最后一个元素

list<int>l;for (int i = 0; i < 6; i++){l.push_back(i);}cout << l.back();
五、修饰符
1.push_front()和pop_front()
![]()
push_front()的作用: 在list对象的头部插入一个元素val。
用法:在l的前面插入一个元素9.

l.push_front(9);
pop_front()的作用:删除list对象的第一个元素。
用法:删除l的第一个元素0。

l.pop_front();
2.push_back()和pop_back()
![]()
push_back()的作用:在其当前最后一个元素之后添加新元素val。
用法:在l的尾部不断的插入元素。

list<int>l;for (int i = 0; i < 6; i++){l.push_back(i);}for (auto i : l){cout << i << ' ';}
![]()
pop_back()的作用:删除列表容器中的最后一个元素。
用法:删除l中的最后一个元素5.

l.pop_back();
3.insert()

作用:在指定位置插入一个元素val。
用法:
在第1个元素前面插入一个元素9.
在第一个元素前面插入两个元素7.
在第三个元素前面插入两个元素10.

l.insert(l.begin(), 9);
l.insert(l.begin(),2,7);
auto it = next(l.begin(), 2);
l.insert(it, 2, 10);
4.erase()

作用:删除指定位置或者区域内的元素。
用法:
删除指定位置的元素。
删除指定区间的元素。
auto it = next(l.begin(), 3);
l.erase(it);
auto it = next(l.begin(), 2);
l.erase(it, l.end());
5.resize()
![]()
作用:调整容器的大小,使其包含 n 个元素。如果 n 小于当前容器大小,则内容将减少到其前 n 个元素,删除超出此部分的元素(并销毁它们)。如果 n 大于当前容器大小,则通过在末尾插入所需数量的元素来扩展内容,以达到 n 的大小。如果指定了 val ,则新元素将初始化为 val 的副本,否则,它们将进行值初始化。
用法:
将l的大小调整为3.
将l的大小调整为7,并用0填补。


l.resize(3);
l.resize(7,0);
6.clear()

作用: 从列表容器中删除所有元素(已销毁),并保留容器的大小 0。
用法:删除l中的所有元素。

l.clear();
六、操作
1.splice()

作用:将元素从 x 传输到容器中,并将它们插入到相应位置。
用法:从l2的第3个元素后面插入l1的元素。

auto it = next(l2.begin(), 3);l2.splice(it, l1);
2.remove()
![]()
作用:从容器中删除所有比较等于 val 的元素。
用法:将等于3的元素删除。

l.remove(3);
3.unique()

作用:从容器中每个连续的相等元素组中删除除第一个元素之外的所有元素。请注意,只有当元素与紧接在它前面的元素相比相等时,才会从列表容器中删除该元素。
用法:

l.unique();
4.sort()
作用:将其进行排序。
用法:
从小到大排序。
从大到小排序。


l.stor();
l.sort(greater<int>());
5.reverse()
![]()
作用:反转列表容器内的值。
用法: 将l反转。
l.reverse();
相关文章:
c++的list类
本篇将讲述list类中的各种重要和常用函数(begin()、end()、rbegin()、rend()、empty()、size()、front(&#…...
uniapp数据缓存
利用uniapp做开发时,缓存数据是及其重要的,下面是同步缓存和异步缓存的使用 同步缓存 在执行同步缓存时会阻塞其他代码的执行 ① uni.setStorageSync(key, data) 设置缓存,如: uni.setStorageSync(name, 张三) ② uni.getSt…...
HarmonyOS-权限管理
一. 权限分类 1. system_grant system_grant 为系统授权,无需询问用户,常用的权限包括网络请求、获取网络信息、获取wifi信息、获取传感器数据等。 /* system_grant(系统授权)*/static readonly INTERNET ohos.permission.INTE…...
Github 2024-11-02 Rust开源项目日报 Top10
根据Github Trendings的统计,今日(2024-11-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目2Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero Genera…...
修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程
HarmonyOS鸿蒙打包hap 安装应用到桌面没有图标,用hdc安装到真机,打包后应用图标丢失变成透明,名字也还是默认的label的bug,以下是解决方案 以下是修改方案: 1、修改应用名字: 2、修改应用图标:…...
unreal engine5动画重定向
UE5系列文章目录 文章目录 UE5系列文章目录前言一、下载动画资源二、创建IK Rig(IK绑定) 前言 在Unreal Engine 5.4中,动画重定向(Animation Retargeting)和动作匹配(Motion Matching)是两种不…...
蓝桥杯练习笔记(二十-日期问题)
日期题常见于填空题,关键点涉及闰年的判断和星期几的判断 1.根据间隔天数计算日期 题目来源:CSDN算法技能树 在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:…...
jenkins 构建报错 mvn: command not found
首先安装过 maven,并且配置过环境变量 win r ,输入 cmd 键入 mvn -v 出现上图输出,则证明安装成功。 原因 jenkins 没有 maven 配置全局属性, 导致无法找到 mvn 命令。 解决方案 找到全局属性,点击新增,配置 MAVEN_HOME 路…...
Vue computed watch
computed watch watch current prev...
【java】java的基本程序设计结构06-运算符
运算符 一、分类 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 1.1 算术运算符 操作符描述例子加法 - 相加运算符两侧的值A B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数B /…...
数据建模圣经|数据模型资源手册卷3,数据建模最佳实践
简介 本书采用了类设计模式的方式对数据模型进行高度抽象总结,展现了常见的数据模型构建模型等模型的作用、层次、分类、地位、沟通方式,和业务规则。使用一个强大的数据模型模式的数据建模,评估特定与广义模型的优缺点,有助于你改…...
Kafka相关知识点(上)
为什么要使用消息队列? 使用消息队列的主要目的主要记住这几个关键词:解耦、异步、削峰填谷。 解耦: 在一个复杂的系统中,不同的模块或服务之间可能需要相互依赖,如果直接使用函数调用或者 API 调用的方式,会造成模块之间的耦合…...
network HCIE认证
#1 ip地址设置 ip add 192.168.1.1 255.255.255.0 ip add 192.168.1.2 255.255.255.0 #2 DHCP 交换机上配置 system-view //进入系统配置 dhcp enable int g0/0/1 //接入接口管理 dhcp select interface //配置dncp选择接口 #3 DNS域名系统 int g0/0/1 dhcp server dn…...
造纸粉体分散机、改性包覆机、改性打散机
包覆改性机在造纸填料中的应用是近年来造纸行业技术创新的一个重要方向。通过包覆改性,可以改善填料的表面性质,提升其在纸张中的留着率和分布均匀性,进而增强纸张的性能,降低生产成本。以下是包覆改性机在造纸填料中的具体应用及…...
npm入门教程1:npm简介
一、基本概述 定义:npm是一个开源的JavaScript包管理器,它允许开发者下载、安装、发布和管理Node.js包。地位:npm是Node.js生态系统中不可或缺的一部分,为开发者提供了丰富的第三方库和工具。起源:npm由Isaac Z. Schl…...
Vue3使用AntV | X6绘制流程图:开箱即用
x6官方地址X6图编辑引擎 | AntV 官方文档仔细地介绍了很多丰富的功能,这里的demo可以满足基本的使用,具体拓展还需要仔细看文档内容 先上效果图 1、安装 通过 npm 或 yarn 命令安装 X6。 # npm npm install antv/x6 --save# yarn yarn add antv/x6 …...
grpc 快速入门
gRPC 是一个现代的远程过程调用(RPC)框架,由 Google 开发。它使用 HTTP/2 作为传输协议,并采用 Protocol Buffers(protobuf)作为接口描述语言(IDL)。gRPC 提供高效的通信、语言无关性…...
layui 实现 城市联动
<div class"layuimini-container"><form id"app-form" class"layui-form layuimini-form"><div class"layui-form-item"><label class"layui-form-label">标题</label><div class"la…...
C++11标准模板(STL)- 常用数学函数 - 分类及比较 - 对给定的浮点值分类(std::fpclassify)
常用数学函数 对给定的浮点值分类 std::fpclassify 定义于头文件 <math.h> #define fpclassify(arg) /* implementation defined */ (C99 起) 归类浮点值 arg 到下列类别中:零、非正规、正规、无穷大、 NaN 或实现定义类别。该宏返回整数值。 忽略 FLT_EV…...
报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
报错场景 使用npm run dev 报错 npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 npm…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
C++中vector类型的介绍和使用
文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...
npm install 相关命令
npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖(默认&…...
【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
这篇学习笔记是Spring系列笔记的第7篇,该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记,供自己和他人参考。 Spring学习笔记目录 笔记1:【SSM】Spring基础: IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...

