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

FX-std::list

std::list 是 C++ 标准库中的一个双向链表容器,定义在 <list> 头文件中。它支持在任意位置高效地插入和删除元素,但不支持随机访问。以下是 std::list 的基本用法和一些常见操作:

1. 包含头文件

#include <list>

2. 定义和初始化

std::list<int> myList; // 定义一个空的 list
std::list<int> myList2 = {1, 2, 3, 4, 5}; // 使用初始化列表初始化

3. 插入元素

myList.push_back(10); // 在末尾插入元素
myList.push_front(5); // 在开头插入元素auto it = myList.begin();
std::advance(it, 2); // 移动迭代器到第3个位置
myList.insert(it, 15); // 在指定位置插入元素

4. 删除元素

myList.pop_back(); // 删除末尾元素
myList.pop_front(); // 删除开头元素auto it = myList.begin();
std::advance(it, 2); // 移动迭代器到第3个位置
myList.erase(it); // 删除指定位置的元素myList.remove(10); // 删除所有值为10的元素

5. 访问元素

int firstElement = myList.front(); // 访问第一个元素
int lastElement = myList.back(); // 访问最后一个元素// 遍历 list
for (auto it = myList.begin(); it != myList.end(); ++it) {std::cout << *it << " ";
}

6. 大小和容量

bool isEmpty = myList.empty(); // 检查是否为空
size_t size = myList.size(); // 获取元素个数

7. 排序和反转

myList.sort(); // 对 list 进行排序
myList.reverse(); // 反转 list
#include <iostream>
#include <list>int main() {std::list<int> myList = {5, 3, 1, 4, 2};// 默认升序排序myList.sort();std::cout << "升序排序: ";for (int val : myList) {std::cout << val << " ";}std::cout << std::endl;// 自定义降序排序myList.sort([](int a, int b) {return a > b;});std::cout << "降序排序: ";for (int val : myList) {std::cout << val << " ";}std::cout << std::endl;return 0;
}

8. 合并和拼接

std::list<int> anotherList = {20, 30, 40};
myList.merge(anotherList); // 合并两个 list,合并后 anotherList 为空myList.splice(myList.begin(), anotherList); // 将 anotherList 的元素拼接到 myList 的开头

9. 其他操作

myList.unique(); // 删除连续重复的元素
myList.resize(10); // 调整 list 的大小

10. 示例代码

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};myList.push_back(6);myList.push_front(0);for (auto it = myList.begin(); it != myList.end(); ++it) {std::cout << *it << " ";}std::cout << std::endl;myList.remove(3);myList.sort();myList.reverse();for (auto it = myList.begin(); it != myList.end(); ++it) {std::cout << *it << " ";}std::cout << std::endl;return 0;
}

总结

std::list 是一个灵活的双向链表容器,适合频繁插入和删除操作的场景。由于它不支持随机访问,因此在需要随机访问时,std::vector 或 std::deque 可能是更好的选择。

相关文章:

FX-std::list

std::list 是 C 标准库中的一个双向链表容器&#xff0c;定义在 <list> 头文件中。它支持在任意位置高效地插入和删除元素&#xff0c;但不支持随机访问。以下是 std::list 的基本用法和一些常见操作&#xff1a; 1. 包含头文件 #include <list> 2. 定义和初始化…...

配置安全网站

配置网站 确定是Debian系统 更新索引&#xff1a;apt update 安装包&#xff1a;apt upgrade -y 查看nginx状态&#xff1a;systemctl status nginx 安装&#xff1a;nginx&#xff1a;apt install nginx 启动&#xff1a;systemctl start nginx 在/var/www/里面创建一个…...

C/C++中对字符处理的常用函数

C语言中的 ctype.h 头文件提供了一系列字符分类和转换函数&#xff0c;用于高效处理字符相关操作。这些函数通过接受 int 类型参数&#xff08;需为 unsigned char 或 EOF &#xff08;-1&#xff09;值&#xff09;&#xff0c;返回非零值表示条件正确&#xff0c;返回0表示错…...

深度学习分词器char-level实战详解

一、三种分词器基本介绍 word-level&#xff1a;将文本按照空格或者标点分割成单词&#xff0c;但是词典大小太大 subword-level&#xff1a;词根分词&#xff08;主流&#xff09; char-level&#xff1a;将文本按照字母级别分割成token 二、charlevel代码 导包&#xff1…...

根据开始和结束日期,获取每一天和每个月的开始和结束日期的list

获取开始日期与结束日期之间每天的list /*** 根据传入的开始时间和结束时间,筛选出所有的天的list;** param startTime* param endTime*/public Map<String, List<String>> fetchDayListBetweenStartAndEnd(String startTime, String endTime) {// 创建mapMap<…...

实时采集到的语音进行语音识别

要在.NET Framework 4.8中使用C#实现离线实时语音识别&#xff0c;可以使用开源库Vosk&#xff08;支持离线ASR&#xff09;配合音频处理库NAudio。 步骤 1&#xff1a;安装依赖库 1.1. 安装NuGet包&#xff1a; - Install-Package NAudio&#xff08;处理音频输入&#xff09…...

《苍穹外卖》SpringBoot后端开发项目核心知识点与常见问题整理(DAY1 to DAY3)

目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功&#xff1a; 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具&#xff1a;Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…...

【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL

【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL 云数据库云服务器的服务云数据库和传统的分布式数据库的异同NoSQLNoSQL数据库的特点CAP定理NoSQL的特性NoSQL数据库的分类NoSQL的适用场景Nosql数据库实例-RedisRedis的优势MongoDBMongoDB的特点NewSQL…...

Linux入门 全面整理终端 Bash、Vim 基础命令速记

Linux入门 2025 超详细全面整理 Bash、Vim 基础命令速记 刚面对高级感满满的 终端窗口是不是有点懵&#xff1f;于是乎&#xff0c;这份手册就是为你准备的高效学习指南&#xff01;我把那些让人头大的系统设置、记不住的命令都整理成了对你更友好的格式&#xff0c;让你快速学…...

LInux基础--apache部署网站

httpd的安装 yum -y install httpdhttpd的使用 启动httpd systemctl enable --now httpd使用enable --now 进行系统设置时&#xff0c;会将该服务设置为开机自启并且同时开启服务 访问httpd 创建虚拟主机 基于域名 在一台主机上配置两个服务server1和server2&#xff0c;其…...

重生之我在学Vue--第12天 Vue 3 性能优化实战指南

重生之我在学Vue–第12天 Vue 3 TypeScript 类型系统深度整合 文章目录 重生之我在学Vue--第12天 Vue 3 TypeScript 类型系统深度整合前言一、TypeScript与Vue3的集成1.1 项目初始化配置1.2 类型配置文件解析 二、类型声明实战2.1 Props类型约束2.2 Emit事件类型2.3 组合式AP…...

Go 语言封装 HTTP 请求的 Curl 工具包

文章目录 Go 语言封装 HTTP 请求的 Curl 工具包&#x1f3d7;️ 工具包结构简介核心结构体定义初始化函数 &#x1f31f; 功能实现1. 设置请求头2. 构建请求3. 发送请求4. 发送 GET 请求5. 发送 POST 请求6. 发送 PUT 请求7. 发送 DELETE 请求8. 读取响应体 &#x1f4a1; 实现…...

【Go】Go MongoDB 快速入门

1. MongoDB 简介 1.1 MongoDB 介绍 由于我们时常需要存储一些大文本数据&#xff08;比如文章内容&#xff09;&#xff0c;存储到一些关系型数据库可能不是最好的选择&#xff0c;这个时候就需要引入一些 NoSQL&#xff08;Not Only SQL&#xff09;&#xff0c;比如 MongoD…...

Java --- 根据身份证号计算年龄

介绍 根据身份证号计算年龄 Java代码 /*** 根据身份证号计算年龄* param birthDateStr* return*/public static int calculateAge(String birthDateStr) {try {birthDateStrbirthDateStr.substring(6,68);// 定义日期格式SimpleDateFormat sdf new SimpleDateFormat("…...

[LeetCode热门100题]|137,260,268,面试17.19

1、137 只出现一次数字|| 1、题目描述 137 只出现一次数字||https://leetcode.cn/problems/single-number-ii/description/ 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你…...

WPF未来展望:紧跟技术发展趋势,探索新的可能性

WPF未来展望&#xff1a;紧跟技术发展趋势&#xff0c;探索新的可能性 一、前言二、WPF 与.NET 技术的融合发展2.1 拥抱.NET Core2.2 利用.NET 5 及后续版本的新特性 三、WPF 在新兴技术领域的应用拓展3.1 与云计算的结合3.2 融入物联网生态 四、WPF 在用户体验和设计方面的创新…...

maxwell

一、maxwell简介 它是一款轻量级工具&#xff0c;主要用于实现 MySQL 到 Kafka 的数据实时同步&#xff0c;尤其适合对实时性要求较高的场景。 1.核心功能 借助解析 MySQL 的 Binlog&#xff0c;能够实时捕获数据变更&#xff0c;并将这些变更数据发送至 Kafka。 2.缺点 仅…...

Qt 6.6.1 中 QPixmap::grabWindow() 的用法与替代方案

一、Qt 6 中的 API 变化 ‌弃用 QPixmap::grabWindow()‌ 在 Qt 6 中&#xff0c;QPixmap::grabWindow() 已被迁移至 QScreen 类&#xff0c;需通过 QScreen::grabWindow() 实现窗口截取‌。 原因&#xff1a; Qt 6 重构了图形模块&#xff0c;QPixmap 的截屏功能被整合到 QSc…...

【软件】免费的PDF全文翻译软件,能保留公式图表的样式

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 很多PDF全文翻译软件都是收费的&#xff0c;而划线翻译看着又很累。这个开源的PDF全文翻译软件非常好用&#xff0c;并且能够保留公式、图表、目录和注…...

LeetCode 112. 路径总和 II java题解

https://leetcode.cn/problems/path-sum/description/ class Solution {boolean resfalse;//记录结果public boolean hasPathSum(TreeNode root, int targetSum) {if(rootnull) return res;int sum0;find(root,sum,targetSum);return res;}public void find(TreeNode root,int…...

如何快速定位导致服务器卡顿的进程

在 Linux 系统中&#xff0c;可以通过多种方式快速定位导致服务器卡顿的进程。以下是一些常用的方法&#xff1a; 1. 使用 top 和 htop 命令&#xff1a; 使用 top 或 htop 命令可以实时监视系统资源利用情况&#xff0c;包括 CPU 和内存占用情况&#xff0c;以及运行的进程列…...

【计算机网络】第八版和第七版的主要区别,附PDF

「《计算机网络》(... 谢希仁」&#xff0c;https://pan.quark.cn/s/7c2147cb48f7 1. 新增内容 - 软件定义网络&#xff08;SDN&#xff09;&#xff1a;第八版在网络层章节中新增了对SDN的简介&#xff08;第4章&#xff09;&#xff0c;介绍了其基本原理和应用。 - Wi-Fi代…...

ubuntu20.04_vscode_snap安装方式

停止 Snap 服务 运行以下命令&#xff1a; sudo systemctl stop snapd 彻底停止 Snap 服务 停止 snapd.service 和 snapd.socket&#xff1a; sudo systemctl stop snapd.socket sudo systemctl stop snapd.service 禁用 Snap 服务的自动启动&#xff08;可选&#xff09;&…...

基于SpringBoot实现旅游酒店平台功能十一

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高&#xff0c;旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求&#xff0c;旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上&#xff0…...

coze ai assistant Task 2

创建一个智能体&#xff1a;夸夸机器人 https://www.coze.cn/store/agent/7480939060010713138?bot_idtrue 改为豆包系列-豆包角色扮演 添加bingWebSearch搜索 添加前&#xff1a; 添加后&#xff1a; 改为工具调用&#xff1a; 添加知识库 使用长期记忆 结合自己的需求&…...

Qt/C++音视频开发82-系统音量值获取和设置/音量大小/静音

一、前言 在音视频开发中&#xff0c;音量的控制分两块&#xff0c;一个是控制播放器本身的音量&#xff0c;绝大部分场景都是需要控制这个&#xff0c;这个不会影响系统音量的设置。还有一种场景是需要控制系统的音量&#xff0c;因为播放器本身的音量是在系统音量的基础上控…...

C盘清理终极方案——基于Windows软连接的目录迁移实战

C盘清理终极方案——基于Windows软连接的目录迁移实战 &#xff08;案例实现&#xff1a;.cache、.conda、AppData\docker等目录移动至D盘&#xff09;​ 核心 # 创建目录软连接 mklink /J "C:\Users\<用户名>\AppData\Local\Docker" "D:\SoftwareCa…...

医疗AI测试实战:如何确保人工智能安全赋能医疗行业?

一、医疗AI测试的重要性 人工智能&#xff08;AI&#xff09;正广泛应用于医疗行业&#xff0c;如疾病诊断、医学影像分析、药物研发、手术机器人和智能健康管理等领域。医疗AI技术的应用不仅提高了诊断效率&#xff0c;还能降低误诊率&#xff0c;改善患者治疗效果。然而&…...

在资源有限中逆势突围:从抗战智谋到寒门高考的破局智慧

目录 引言 一、历史中的非对称作战&#xff1a;从李牧到八路军的智谋传承 李牧戍边&#xff1a;古代军事博弈中的资源重构 八路军的游击战&#xff1a;现代战争中的智慧延续 二、创业界的逆袭之道&#xff1a;小米与拼多多的资源重构 从MVP到杠杆解 社交裂变与资源错配 …...

在使用element-ui时表单的表头在切换页面时第一次进入页面容易是白色字体解决方法

在里面添加:header-cell-style"{ color: black }" <el-table :data"tableData" style"width: 100%" height"250" :header-cell-style"{ color: black }" ></el-table> 正确代码是 <templat…...

与指定数字相同的数的个数(信息学奥赛一本通-1102)

【题目描述】 输出一个整数序列中与指定数字相同的数的个数。 【输入】 输入包含三行&#xff1a; 第一行为n&#xff0c;表示整数序列的长度(n≤100)&#xff1b; 第二行为n个整数&#xff0c;整数之间以一个空格分开&#xff1b; 第三行包含一个整数&#xff0c;为指定的数字…...

13. Pandas :使用 to_excel 方法写入 Excel文件

一 to_excel 方法的相关参数 用它来指定要将 DataFrame 写入哪些工作表的哪些单元格&#xff0c;以及是否需要包含列标题和 DataFrame 索引。如何处理特殊值&#xff08;如 np.nan 和 np.inf&#xff09;。 1.指定工作表和单元格 sheet_name&#xff1a;指定将 DataFrame 写入的…...

python画图文字显示不全+VScode新建jupyter文件

之前有两个jupyter文件&#xff0c;一个显示正确一个显示错误。已经尝试过的方法包括&#xff1a; 1、更改下载好的SimHei字体&#xff0c;或者其他支持中文的字体 2、重新创建虚拟环境 3、清楚matplotlib缓存目录 4、从anaconda的jupyter换至vscode 目前部分中文不能正常…...

C#中继承的核心定义‌

1. 继承的核心定义‌ ‌继承‌ 是面向对象编程&#xff08;OOP&#xff09;的核心特性之一&#xff0c;允许一个类&#xff08;称为‌子类/派生类‌&#xff09;基于另一个类&#xff08;称为‌父类/基类‌&#xff09;构建&#xff0c;自动获得父类的成员&#xff08;字段、属…...

MOEFeedForward 模块

代码 class FeedForward(nn.Module):def __init__(self, config: LMConfig):super().__init__()if config.hidden_dim is None:hidden_dim 4 * config.dimhidden_dim int(2 * hidden_dim / 3)config.hidden_dim config.multiple_of * ((hidden_dim config.multiple_of - 1…...

TypeScript变量声明详解:与JavaScript的对比与工程化价值

TypeScript的变量声明机制在保留JavaScript灵活性的同时&#xff0c;通过类型注解和作用域强化显著提升了代码可靠性。本文将深入解析TypeScript的变量声明特性&#xff0c;并与JavaScript/ES标准进行对比&#xff0c;揭示其工程实践价值。 一、变量声明方式对比 1. 基础声明语…...

在 Axios 中设置代理

在 Axios 中设置代理 Axios 与代理 Axios 是 JavaScript 生态中最广泛使用的 HTTP 客户端之一。它基于 Promise&#xff0c;提供了易用、直观的 API&#xff0c;用于执行 HTTP 请求并处理自定义请求头、配置和 Cookie 等。 通过为 Axios 请求设置代理&#xff0c;您可以隐藏自…...

WebSocket 使用教程

WebSocket 使用教程 WebSocket 是一种在现代网络应用中广泛使用的网络通信协议&#xff0c;旨在实现服务器与客户端之间高效、实时的双向通信。与传统的 HTTP 协议相比&#xff0c;WebSocket 提供了更低的延迟和更高的互动性&#xff0c;使其成为构建实时应用的理想选择。无论…...

【RabbitMQ】rabbitmq在spring boot中的使用

rabbitmq官网地址&#xff1a;https://www.rabbitmq.com/tutorials 下面介绍rabbitmq官网中七种使用方式在spring boot中如何使用 下面是基于 Spring Boot 使用 RabbitMQ 实现这七种模式的示例代码。假设已经引入了以下依赖&#xff1a; Maven 依赖 <dependency><g…...

独立开发记录:使用Trae和Cloudflare快速搭建了自己的个人博客

前段时间我计划搭建个人博客&#xff0c;用于记录自己写的文章、录制的课程和开发的项目&#xff0c;于是结合 Trae AI IDE 与 Cloudflare 快速搭建并上线了人生第一个网站&#xff0c;在这个过程中&#xff0c;我整合了两种工具的优势&#xff08;AI辅助开发 免费托管加速&a…...

文件解析漏洞详解

IIS解析漏洞 环境安装 windows2003iis6 IIS6.X ⽬录解析 在iis6.x中&#xff0c;.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏。 在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件 在x.asp中新建⼀个png⽂件。内容为<%now()%> asp代码。 外部浏览器中访问windows2003的i…...

自然语言处理:文本聚类

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了。今天给大家分享的内容是自然语言处理中的文本聚类。 文本聚类在自然语言处理领域占据着重要地位&#xff0c;它能将大量无序的文本按照内容的相似性自动划分成不同的类别&#xff0c;极大地提高了文本处…...

【MySQL】基本操作 —— DDL

目录 DDLDDL 常用操作对数据库的常用操作查看所有数据库创建数据库切换、显示当前数据库删除数据库修改数据库编码 对表的常用操作创建表数据类型数值类型日期和时间类型字符串类型 查看当前数据库所有表查看指定表的创建语句查看指定表结构删除表 对表结构的常用操作给表添加字…...

玩转python:通俗易懂掌握高级数据结构:collections模块之namedtuple

引言 namedtuple是Python中collections模块提供的一个强大工具&#xff0c;用于创建具有字段名的元组。它不仅具备元组的不可变性&#xff0c;还能通过字段名访问元素&#xff0c;极大地提高了代码的可读性和可维护性。本文将详细介绍namedtuple的关键用法和特性&#xff0c;并…...

[GHCTF 2025]SQL??? 【sqlite注入】

梳理一下SQLite注入 常见指令 查看版本&#xff1a;sqlite_version() 列出附加数据库中的所有表&#xff1a;.tables 注入步骤 先查字段&#xff1a; 1 order by 5 # 三板斧&#xff1a; 0 union select 1,2,sql from sqlite_master; sql字段存储创建该数据库对象时所使…...

spring boot 发送邮件验证码

一、前置需求 1、准备邮箱 2、登录授权码 qq邮箱在–>设置–>账号POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启服务 二、发送邮件 1、简单邮件 包含邮件标题、邮件正文 2、引入mail启动器 <dependency><groupId>org.springframework.boot</groupI…...

[项目]基于FreeRTOS的STM32四轴飞行器: 二.项目搭建及移植FreeRTOS

基于FreeRTOS的STM32四轴飞行器: 二.项目搭建及debug模块 一.项目搭建二.移植FreeRTOS 一.项目搭建 先配置SYS系统滴答定时器来源为默认&#xff0c;因为其他定时器用来驱动电机了只能与FreeRTOS共用&#xff1a; 之后选择RCC配置芯片的时钟来源&#xff1a; 配置时钟树&am…...

Amazon RDS ProxySQL 探索(一)

:::info &#x1f4a1; 在日常开发中&#xff0c;开发者们会涉及到数据库的连接&#xff0c;在使用Amazon RDS数据库时&#xff0c;若使用集群模式或者多数据库时&#xff0c;会出现一写多读多个Endpoint&#xff0c;在实际开发中&#xff0c; 开发者们配置数据库连接通常希望走…...

高速PCB设计(布线设计)

以下是针对高速PCB布线设计的综合笔记&#xff0c;结合用户提供的设计规范及行业通用原则整理而成&#xff1a; 一、关键信号布线原则 布线优先级 顺序&#xff1a;射频信号&#xff1e;中/低频信号&#xff1e;时钟信号&#xff1e;高速信号射频信号需包地处理&#xff0c;线…...

《探秘人工智能与鸿蒙系统集成开发的硬件基石》

在科技飞速发展的当下&#xff0c;人工智能与鸿蒙系统的集成开发开辟了创新的前沿领域。这一融合不仅代表着技术的演进&#xff0c;更预示着智能设备生态的全新变革。而在这场技术盛宴的背后&#xff0c;坚实的硬件配置是确保开发顺利进行的关键&#xff0c;它就像一座大厦的基…...