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

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类中的各种重要和常用函数&#xff08;begin&#xff08;&#xff09;、end&#xff08;&#xff09;、rbegin&#xff08;&#xff09;、rend&#xff08;&#xff09;、empty&#xff08;&#xff09;、size&#xff08;&#xff09;、front&#xff08;&#…...

uniapp数据缓存

利用uniapp做开发时&#xff0c;缓存数据是及其重要的&#xff0c;下面是同步缓存和异步缓存的使用 同步缓存 在执行同步缓存时会阻塞其他代码的执行 ① uni.setStorageSync(key, data) 设置缓存&#xff0c;如&#xff1a; uni.setStorageSync(name, 张三) ② uni.getSt…...

HarmonyOS-权限管理

一. 权限分类 1. system_grant system_grant 为系统授权&#xff0c;无需询问用户&#xff0c;常用的权限包括网络请求、获取网络信息、获取wifi信息、获取传感器数据等。 /* system_grant&#xff08;系统授权&#xff09;*/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 安装应用到桌面没有图标&#xff0c;用hdc安装到真机&#xff0c;打包后应用图标丢失变成透明&#xff0c;名字也还是默认的label的bug&#xff0c;以下是解决方案 以下是修改方案&#xff1a; 1、修改应用名字&#xff1a; 2、修改应用图标&#xff1a…...

unreal engine5动画重定向

UE5系列文章目录 文章目录 UE5系列文章目录前言一、下载动画资源二、创建IK Rig&#xff08;IK绑定&#xff09; 前言 在Unreal Engine 5.4中&#xff0c;动画重定向&#xff08;Animation Retargeting&#xff09;和动作匹配&#xff08;Motion Matching&#xff09;是两种不…...

蓝桥杯练习笔记(二十-日期问题)

日期题常见于填空题&#xff0c;关键点涉及闰年的判断和星期几的判断 1.根据间隔天数计算日期 题目来源&#xff1a;CSDN算法技能树 在X星系的广袤空间中漂浮着许多X星人造“炸弹”&#xff0c;用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如&#xff1a;…...

jenkins 构建报错 mvn: command not found

首先安装过 maven&#xff0c;并且配置过环境变量 win r ,输入 cmd 键入 mvn -v 出现上图输出&#xff0c;则证明安装成功。 原因 jenkins 没有 maven 配置全局属性, 导致无法找到 mvn 命令。 解决方案 找到全局属性&#xff0c;点击新增&#xff0c;配置 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,数据建模最佳实践

简介 本书采用了类设计模式的方式对数据模型进行高度抽象总结&#xff0c;展现了常见的数据模型构建模型等模型的作用、层次、分类、地位、沟通方式&#xff0c;和业务规则。使用一个强大的数据模型模式的数据建模&#xff0c;评估特定与广义模型的优缺点&#xff0c;有助于你改…...

Kafka相关知识点(上)

为什么要使用消息队列&#xff1f; 使用消息队列的主要目的主要记住这几个关键词:解耦、异步、削峰填谷。 解耦: 在一个复杂的系统中&#xff0c;不同的模块或服务之间可能需要相互依赖&#xff0c;如果直接使用函数调用或者 API 调用的方式&#xff0c;会造成模块之间的耦合…...

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…...

造纸粉体分散机、改性包覆机、改性打散机

包覆改性机在造纸填料中的应用是近年来造纸行业技术创新的一个重要方向。通过包覆改性&#xff0c;可以改善填料的表面性质&#xff0c;提升其在纸张中的留着率和分布均匀性&#xff0c;进而增强纸张的性能&#xff0c;降低生产成本。以下是包覆改性机在造纸填料中的具体应用及…...

npm入门教程1:npm简介

一、基本概述 定义&#xff1a;npm是一个开源的JavaScript包管理器&#xff0c;它允许开发者下载、安装、发布和管理Node.js包。地位&#xff1a;npm是Node.js生态系统中不可或缺的一部分&#xff0c;为开发者提供了丰富的第三方库和工具。起源&#xff1a;npm由Isaac Z. Schl…...

Vue3使用AntV | X6绘制流程图:开箱即用

x6官方地址X6图编辑引擎 | AntV 官方文档仔细地介绍了很多丰富的功能&#xff0c;这里的demo可以满足基本的使用&#xff0c;具体拓展还需要仔细看文档内容 先上效果图 1、安装 通过 npm 或 yarn 命令安装 X6。 # npm npm install antv/x6 --save# yarn yarn add antv/x6 …...

grpc 快速入门

gRPC 是一个现代的远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;由 Google 开发。它使用 HTTP/2 作为传输协议&#xff0c;并采用 Protocol Buffers&#xff08;protobuf&#xff09;作为接口描述语言&#xff08;IDL&#xff09;。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 到下列类别中&#xff1a;零、非正规、正规、无穷大、 NaN 或实现定义类别。该宏返回整数值。 忽略 FLT_EV…...

报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

报错场景 使用npm run dev 报错 npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 npm…...

别再为MATLAB+Amesim联合仿真装环境发愁了!保姆级VS2019+2022a+2021.1安装避坑指南

MATLABAmesim联合仿真环境搭建全攻略&#xff1a;从零避坑到一次成功 当第一次接触MATLAB与Amesim联合仿真时&#xff0c;许多工程师和研究生都会在环境搭建阶段遭遇各种"玄学问题"——明明按照教程操作&#xff0c;却总是卡在某个环节无法继续。本文将分享一套经过…...

B站视频解析API架构解析:PHP实现的高效视频流获取方案

B站视频解析API架构解析&#xff1a;PHP实现的高效视频流获取方案 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse 在视频内容生态蓬勃发展的今天&#xff0c;开发者经常面临一个技术挑战&#xff1a;…...

彻底释放Mac磁盘空间:Pearcleaner如何智能清理应用残留文件

彻底释放Mac磁盘空间&#xff1a;Pearcleaner如何智能清理应用残留文件 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾将应用拖入废纸篓后&#xf…...

Seraphine终极指南:英雄联盟LCU API实战开发与智能BP系统深度解析

Seraphine终极指南&#xff1a;英雄联盟LCU API实战开发与智能BP系统深度解析 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟竞技环境中&#xff0c;数据驱动的决策能力往往决定了胜负的走向。Ser…...

通过Nodejs快速为Web应用接入多模型AI能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Nodejs快速为Web应用接入多模型AI能力 现代Web应用对智能交互能力的需求日益增长&#xff0c;无论是客服对话、内容辅助生成还…...

深度学习优化算法(四)—— 参数初始化策略(Xavier/Kaiming/正交)(三十六)

1. 定位导航 第 33-35 篇讨论了训练过程——但还有一个关键问题被忽略了:从哪里开始? Goodfellow 的警告: 训练深度模型是一个足够困难的问题,以至于大多数算法都很大程度地受到初始化选择的影响。初始点能够决定算法是否收敛、收敛速度、最终的代价值。 本篇专攻怎么挑一…...

卫星通信安全认证技术解析与应用指南

1. 卫星通信安全认证技术概述 卫星通信作为现代信息基础设施的重要组成部分&#xff0c;其安全性直接关系到国家安全和经济发展。在近地轨道卫星数量激增、天地一体化网络快速发展的背景下&#xff0c;传统地面网络的安全认证方案已无法满足卫星通信的特殊需求。卫星信道具有长…...

用Python复现FAST天眼数学建模:从坐标变换到促动器伸缩量计算(附完整代码)

用Python复现FAST天眼数学建模&#xff1a;从坐标变换到促动器伸缩量计算&#xff08;附完整代码&#xff09; 中国天眼FAST作为全球最大单口径射电望远镜&#xff0c;其主动反射面调节系统堪称现代工程奇迹。当观测不同方位天体时&#xff0c;需要通过促动器精确控制4450块反射…...

3步实现专业级AI换脸:roop-unleashed创新方案指南

3步实现专业级AI换脸&#xff1a;roop-unleashed创新方案指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 在数字创意飞速发展的今天&#xff0c;AI换脸…...

Java 大厂面试 200 题完整版含答案解析

前言本文整理了近两年从阿里、腾讯、字节、美团、京东、拼多多等大厂面试中高频出现的 200 道 Java 面试题&#xff0c;覆盖 Java 基础、集合、并发、JVM、Spring、MySQL、Redis、消息队列、分布式、场景设计 等核心模块&#xff0c;每题都附有简明扼要的答案解析&#xff0c;助…...