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

7.list

本篇博客梳理C++的STL中的list容器

一、list的基本结构与使用

1.list的介绍

list的底层是带头循环双向链表
list的结构
带头:含哨兵位
循环:尾节点的next指针指向哨兵位
双向:每个节点具有两个指针域,一个指针指向前一个结点

2.list的使用

(1)list的构造函数

构造函数接口说明
list (size_type n, const value_type& val = value_type()用n个val值构造list
list()构造空的list
list(const list& x)拷贝构造
list(InputIrerator first,InputIrerator last)用(first,last)区间中的元素来构造list

(2)迭代器

函数声明接口说明
begin/end返回第一个元素的迭代器/返回最后一个元素下一个位置的迭代器
rbegin/rend返回第一个元素的位置(即end处)/返回最后一个元素的下一个位置(即begin)

迭代器的分类:
① 功能上
功能上的分类

② 性质上

性质上的分类
实际上,迭代器的性质由STL的底层结构决定
单向迭代器:只支持单向遍历
双向迭代器:支持双向遍历,支持++和–,但不支持一下子+或者-多个单位
随机迭代器:支持随机访问,也就是既支持++和–,也支持+n和-n

(3)容量相关函数

函数声明接口说明
empty检查list是否为空,是则返回true,不是则返回false
size返回list中有效元素的个数

(4)头,尾元素的访问

函数声明接口说明
front返回list第一个值的引用
back返回list最后一个值的引用

(5)增删查改

函数声明接口说明
push_front在list的第一个元素前面插入值为val的元素
pop_front删除list中第一个元素
push_back在list尾部插入值为val的元素
pop_back删除list中最后一个元素
insert在list的pos位置处插入值为val的元素
erase删除list的pos位置处的元素
swap交换两个list中的元素
clear清空list中的有效元素

(6)list支持的sort函数(std标准库库里面没支持)

sort函数

#include <iostream> 
using namespace std;
#include <vector> 
#include <list>
int main()
{vector<int> v = { 6,3,7,8,3,5,8,1,2,9 };list<int> lt(v.begin(), v.end());lt.sort();//默认排成升序for (auto e : lt){cout << e << " ";}cout << endl;greater<int> gt;lt.sort(gt);//排成降序for (auto e : lt){cout << e << " ";}cout << endl;less<int> ls;lt.sort(ls);//排成升序for (auto e : lt){cout << e << " ";}cout << endl;return 0;
}

运行结果

(7)merge函数:合并两个有序链表

#include <iostream> 
using namespace std;
#include <list>int main()
{list<int> lt1;lt1.push_back(3);lt1.push_back(4);lt1.push_back(2);lt1.sort();list<int> lt2;lt2.push_back(8);lt2.push_back(7);lt2.push_back(9);lt2.sort();lt1.merge(lt2);for (auto e : lt1){cout << e << " ";}return 0;
}

运行结果
注意,此时lt2已经被清空

相关文章:

7.list

本篇博客梳理C的STL中的list容器 一、list的基本结构与使用 1&#xff0e;list的介绍 list的底层是带头循环双向链表 带头&#xff1a;含哨兵位 循环&#xff1a;尾节点的next指针指向哨兵位 双向&#xff1a;每个节点具有两个指针域&#xff0c;一个指针指向前一个结点 2…...

Qt+海康虚拟相机的调试

做机器视觉项目的时候&#xff0c;在没有相机或需要把现场采集的图片在本地跑一下做测试时&#xff0c;可以使用海康的虚拟相机调试。以下是设置步骤&#xff1a; 1.安装好海康MVS软件&#xff0c;在菜单栏->工具选择虚拟相机工具&#xff0c;如下图&#xff1a; 2.打开虚拟…...

数据库基础练习4(有关索引,视图完整解答)

建立需要的表 学生表 mysql> create table studnet(sno int primary key auto_increment,sname varchar(30) not null unique,ssex varchar(2) check (ssex男 or ssex女) not null ,sage int not null,sdept varchar(10) default 计算机 not null); Query OK, 0 rows affe…...

实操给触摸一体机接入大模型语音交互

本文以CSK6 大模型开发板串口触摸屏为例&#xff0c;实操讲解触摸一体机怎样快速增加大模型语音交互功能&#xff0c;使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音&#xff0c;将语音数据传输…...

Excel中对单列数据进行去重筛选

在Excel中对单列数据进行去重筛选&#xff0c;可以按照以下步骤操作&#xff1a; 方法一&#xff1a;使用“删除重复项”功能 选择数据列&#xff1a;点击要处理的列头&#xff08;如A列&#xff09;。打开“删除重复项”&#xff1a; Excel 2007及以后版本&#xff1a;点击“…...

K8s —基础指南(K8s - Basic Guide)

K8s —基础指南 K8s 是云上部署容器化应用的事实标准。它作为容器的强大编排器&#xff0c;管理容器重启、负载均衡等任务。 理解 Kubernetes 架构 Kubernetes 的关键功能之一是为访问 Pod 提供稳定的端点&#xff0c;尽管 Pod 本身是短暂的。Kubernetes 服务有效地弥补了这…...

ABAP开发中的前导零和末尾零

前导零和末尾零是指分别出现在数字序列中第一个非零数字之前和最后一个非零数字之后的任何零数字。 关于前导 0 在 SAP 系统中&#xff0c;大多数字母数字字段在数据库中存储时都带前导零&#xff0c;完全占用字段的定义长度。但是&#xff0c;当字段显示给最终用户时&#x…...

Baklib赋能数字内容体验个性化推荐提升用户体验的未来之路

内容概要 随着数字化时代的不断发展&#xff0c;用户对内容消费的需求日益多样化&#xff0c;个性化推荐成为提升用户体验的重要手段。Baklib以其先进的技术手段&#xff0c;在数字内容领域内积极推动个性化推荐的实施&#xff0c;从而满足用户在信息获取和内容消费中的独特需…...

关于Redis的持久化

目录 RDB 1.手动触发 2.自动触发 AOF aof的重写机制 Redis虽然是一个内存数据库&#xff0c;但是也是可以将数据存储到硬盘中的&#xff0c;也就是持久化。硬盘的数据是在Redis重启的时候&#xff0c;用来恢复内存中的数据的&#xff0c;即对数据做了一个备份。Redis实现持…...

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现&#xff08;概念性&#xff09; 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…...

2024美团春招硬件开发笔试真题及答案解析

目录 一、选择题 1、在 Linux,有一个名为 file 的文件,内容如下所示: 2、在 Linux 中,关于虚拟内存相关的说法正确的是() 3、AT89S52单片机中,在外部中断响应的期间,中断请求标志位查询占用了()。 4、下列关于8051单片机的结构与功能,说法不正确的是()? 5、…...

Python内置函数map(), list(), len(), iter(), hex(), hash()的详细解析,包括功能、语法、示例及注意事项

1. map(function, iterable, ...) 功能&#xff1a;对可迭代对象中的每个元素应用指定函数&#xff0c;返回一个迭代器。 参数&#xff1a; function&#xff1a;要执行的函数&#xff08;可以是lambda表达式&#xff09;。 iterable&#xff1a;一个或多个可迭代对象&#x…...

[LVGL] 在VC_MFC中移植LVGL

前言&#xff1a; 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展【类似GUIguider】 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码&#xff0c;并将其文件夹改名为lvgl lvgl: LVGL 是一个开源图形库&#xff0c;提供您创建具有易于使用…...

MySQL视图索引操作

创建学生表&#xff1b; mysql> create table Student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-> Ssex char(2) check (Ssex男 or Ssex女) not null,-> Sage int not null,-> Sdept varchar(10) default 计算机 not …...

一次奇怪的空指针问题分析:事务、死锁与隐式回滚

最近我们在排查一个诡异的 空指针异常&#xff0c;整个分析过程可以说是跌宕起伏&#xff0c;最终的结论也颇具隐蔽性。今天就把这个问题分享出来&#xff0c;希望对大家有所帮助。 问题现象 在系统中&#xff0c;我们有 单据 B&#xff0c;它通过一个 关联 ID 字段与 上级单…...

解决aspose将Excel转成PDF中文变成方框的乱码问题

原文网址&#xff1a;解决aspose将Excel转成PDF中文变成方框的乱码问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决aspose将Excel转成PDF中文变成方框的乱码问题。 问题描述 用aspose将word、excel等转成PDF后&#xff0c;英文展示正常&#xff0c;但中文全部变成了…...

.net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现

EF Core EF Core 是一个流行的对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;它简化了与数据库的交互&#xff0c;提供了一个高效、灵活且易于使用的数据访问层。 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技…...

2025.2.5——五、[网鼎杯 2020 青龙组]AreUSerialz

题目来源&#xff1a;BUUCTF [网鼎杯 2020 青龙组]AreUSerialz 一、打开靶机&#xff0c;整理信息 直接得到一串php代码&#xff0c;根据题目可以看到还有序列化 二、解题思路 step 1&#xff1a;代码审计 <?phpinclude("flag.php");highlight_file(__FILE__…...

电风扇各国检测认证详细介绍美国FCC+UL欧盟CE+ROHS日本PSE+METI备案+英国UKCA

美国 &#xff1a; FCC认证 &#xff1a;产品进入美洲市场的通行证&#xff0c;需通过FCC SDOC认证。 FCC第15部分B: 该标准适用于非故意辐射设备&#xff0c;如家用电器、电脑设备等。它规定了这些设备在电磁环境中不会产生过多的辐射。 ​射频标准: FCC第15部分C:该标准适…...

Flutter Isolate解决耗时任务导致卡死

先来对比一下在Flutter的ui主线程下直接计算一个耗时任务的情况&#xff1a; import package:flutter/material.dart;void main() {runApp(const MaterialApp(home: H(),)); }class H extends StatefulWidget {const H({super.key});overrideState<H> createState() >…...

Altium Designer新手必看:5分钟搞定PCB封装库创建(附3D模型导入技巧)

Altium Designer新手实战&#xff1a;从零构建PCB封装库与3D模型高效导入 刚接触Altium Designer的工程师常被PCB封装库的创建难住——焊盘尺寸怎么定&#xff1f;丝印如何对齐&#xff1f;3D模型能否可视化验证&#xff1f;这些问题直接关系到后期PCB设计的成功率。本文将用最…...

告别境外断网:Nrfr让全球网络无缝连接——免Root跨国通信解决方案

告别境外断网&#xff1a;Nrfr让全球网络无缝连接——免Root跨国通信解决方案 【免费下载链接】Nrfr &#x1f30d; 免 Root 的 SIM 卡国家码修改工具 | 解决国际漫游时的兼容性问题&#xff0c;帮助使用海外 SIM 卡获得更好的本地化体验&#xff0c;解锁运营商限制&#xff0c…...

Qwen3-TTS-12Hz-1.7B-Base真实案例:为视障开发者生成无障碍编程教程语音

Qwen3-TTS-12Hz-1.7B-Base真实案例&#xff1a;为视障开发者生成无障碍编程教程语音 1. 这不是“读出来就行”的语音&#xff0c;而是真正听得懂代码的语音助手 你有没有想过&#xff0c;一段Python函数说明、一个React组件生命周期图解、甚至一段带缩进和符号的JSON结构&…...

老旧Windows 7系统硬件适配难题的技术解决方案:开源社区驱动的扩展支持包

老旧Windows 7系统硬件适配难题的技术解决方案&#xff1a;开源社区驱动的扩展支持包 【免费下载链接】win7-sp2 UNOFFICIAL Windows 7 Service Pack 2, to improve basic Windows 7 usability on modern systems and fully update Windows 7. 项目地址: https://gitcode.com…...

Nano-Banana效果展示:多款产品高清拆解图生成作品集

Nano-Banana效果展示&#xff1a;多款产品高清拆解图生成作品集 1. 专业级拆解效果惊艳呈现 想象一下&#xff0c;只需简单输入文字描述&#xff0c;就能获得堪比专业设计师制作的产品爆炸图。Nano-Banana产品拆解引擎让这一想象成为现实&#xff0c;它专为产品拆解、平铺展示…...

不用反向传播也能攻击AI模型?手把手教你用ZOO算法实现黑盒对抗攻击

零阶优化实战&#xff1a;无需反向传播的黑盒对抗攻击指南 当你在网络安全竞赛中遇到一个闭源的图像识别API&#xff0c;或是需要测试自家电商平台商品分类模型的鲁棒性时&#xff0c;传统基于梯度反向传播的白盒攻击方法立刻变得束手无策。这就是ZOO&#xff08;Zeroth Order …...

RStudio Server部署与运维实战:从零搭建到高效管理

1. 环境准备&#xff1a;搭建RStudio Server的基石 在开始部署RStudio Server之前&#xff0c;我们需要确保服务器环境已经准备就绪。就像盖房子需要打地基一样&#xff0c;这一步决定了后续所有工作的稳定性。我遇到过不少因为环境问题导致的安装失败案例&#xff0c;大多数都…...

淘宝母婴购物数据可视化分析:从数据清洗到商业洞察

1. 淘宝母婴数据清洗实战&#xff1a;从原始数据到分析就绪 做数据分析最头疼的就是拿到一堆乱七八糟的原始数据&#xff0c;淘宝母婴数据也不例外。我最近处理过一批天池比赛的脱敏数据&#xff0c;光是清洗环节就踩了不少坑。先说说最基础的CSV导入&#xff0c;用pandas的rea…...

OpenGOAL编译器实战指南:如何构建你自己的Jak游戏

OpenGOAL编译器实战指南&#xff1a;如何构建你自己的Jak游戏 【免费下载链接】jak-project Reviving the language that brought us the Jak & Daxter Series 项目地址: https://gitcode.com/gh_mirrors/ja/jak-project OpenGOAL编译器是一个强大的工具&#xff0c…...

OpenClaw+GLM-4.7-Flash:自动化会议纪要生成实践

OpenClawGLM-4.7-Flash&#xff1a;自动化会议纪要生成实践 1. 为什么需要自动化会议纪要 每周三下午的团队例会是我最头疼的时刻。作为技术负责人&#xff0c;我需要同时参与讨论、记录关键决策点、跟踪行动项&#xff0c;最后还要整理成文档发给全员。手忙脚乱的结果往往是…...