当前位置: 首页 > 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() >…...

3个实用技巧:如何彻底解决C盘爆红难题,让你的Windows系统重获新生

3个实用技巧&#xff1a;如何彻底解决C盘爆红难题&#xff0c;让你的Windows系统重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾经遇到过这样的…...

PTA数据结构实战:层次遍历巧解二叉树叶结点输出

1. 从问题理解到解题思路 第一次看到PTA上这道二叉树题目时&#xff0c;我也被题目描述唬住了。题目要求按从上到下、从左到右的顺序输出所有叶结点&#xff0c;这不就是典型的层次遍历&#xff08;BFS&#xff09;应用场景吗&#xff1f;但仔细分析输入格式后&#xff0c;我发…...

Git多用户代理架构解析:实现细粒度权限管理与统一访问入口

1. 项目概述&#xff1a;从单兵作战到团队协作的代码管理跃迁如果你是一个独立开发者&#xff0c;或者在一个小团队里&#xff0c;你可能习惯了把代码往GitHub、Gitee这样的平台上一扔&#xff0c;设置个私有仓库&#xff0c;然后通过个人账号的SSH密钥来管理访问权限。这种方式…...

基于sagents框架的AI智能体开发:从核心原理到实战应用

1. 项目概述&#xff1a;一个面向开发者的AI智能体构建框架最近在AI应用开发圈子里&#xff0c;一个名为sagents的开源项目开始引起不少同行的注意。如果你正在寻找一个能帮你快速构建、测试和部署AI智能体&#xff08;Agent&#xff09;的框架&#xff0c;而不是从零开始造轮子…...

RAG落地方案

1. RAG分析1.1 为什么需要 Rerank&#xff1f;要理解 Rerank 的价值&#xff0c;得先理解向量检索到底"差"在哪。RAG 的第一阶段检索&#xff0c;通常用的是双塔&#xff08;Bi-Encoder&#xff09;架构的 Embedding 模型。它的工作方式是把 Query 和每个文档分别独立…...

VSCode性能优化实战:回归轻量编辑器,提升开发效率

1. 项目概述&#xff1a;为什么我们需要一个“经典体验”的VSCode&#xff1f; 如果你是一个从Sublime Text、Notepad或者更早的编辑器时代走过来的开发者&#xff0c;最近打开Visual Studio Code时&#xff0c;可能会感到一丝陌生。没错&#xff0c;VSCode变得越来越强大&…...

GitHub仓库自动化同步工具xpull:原理、配置与实战应用

1. 项目概述&#xff1a;一个被低估的GitHub数据同步利器 如果你经常在GitHub上管理多个仓库&#xff0c;或者需要将某个仓库的特定分支、标签甚至整个提交历史同步到另一个仓库&#xff0c;那么你很可能经历过手动操作的繁琐。无论是为了备份、镜像、还是将上游的更新合并到自…...

Svelte动态光标实现:提升Web应用交互体验的完整方案

1. 项目概述&#xff1a;一个为Svelte应用注入灵魂的交互光标在Web应用的世界里&#xff0c;细节决定体验。我们早已习惯了那个千篇一律的箭头指针&#xff0c;它精准、高效&#xff0c;但缺乏情感和上下文。当用户点击一个按钮、悬停在一个链接上&#xff0c;或者在一个可拖拽…...

spoof 与网络安全:如何利用 MAC 地址伪造增强企业安全防护

spoof 与网络安全&#xff1a;如何利用 MAC 地址伪造增强企业安全防护 【免费下载链接】spoof Easily spoof your MAC address in macOS, Windows, & Linux! 项目地址: https://gitcode.com/gh_mirrors/sp/spoof 在当今数字化时代&#xff0c;网络安全已成为企业运营…...

国产信创电脑是什么意思?为什么政府和企业都在用?

国产信创电脑——这个名词虽然听起来有些陌生&#xff0c;但它正在深刻影响着我们的工作和生活。从政府采购到企业信息化方案&#xff0c;再到科技媒体的报道&#xff0c;“国产信创电脑”已经成为了关键词之一。那么&#xff0c;它究竟是什么&#xff1f;为什么如此重要&#…...