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

Qt读写XML文档

XML 结构与概念简介

XML(可扩展标记语言) 是一种用于存储和传输结构化数据的标记语言。其核心特性包括:

1、树状结构:XML 数据以层次化的树形结构组织,包含一个根元素(Root Element),其他元素作为其子节点。
2、标签(Tag):通过开始标签(如 )和结束标签(如 )定义元素,标签名区分大小写。
3、属性(Attribute):附加在标签上的键值对,如 。
4、文本内容:元素之间的纯文本,如 Qt5 Cadaques
5、注释与声明:以 标记注释,以 <?xml version="1.0" encoding="UTF-8"?> 开头声明版本和编码。

Qt 读写 XML 示例

<?xml version='1.0' encoding='UTF-8'?>
<books><book id="1"><title>Qt5 Cadaques</title><author>Jake Petroules</author><price>29.99</price></book><book id="2"><title>C++ Primer</title><author>Stanley B. Lippman</author><price>39.99</price></book><mybook id="3" title="C# forever"/><book id="4"><title>Effective Modern C++</title><author>Scott Meyers</author><price>49.99</price></book>
</books>

在Qt中读写XML文档常用的两种方式:

1、基于DOM(文档对象模型),核心类为QDomDocument

优点:
易于操作:支持XPath查询,便于遍历和修改节点。
完整文档处理:适合需要整体分析或频繁修改文档结构的场景。
读写功能:既能读取XML文件,也可生成并保存XML文档。
缺点:
内存消耗高:需将整个文档加载到内存,处理大文件时效率低下。
性能瓶颈:解析和生成速度较慢,不适合流式或实时处理。
适用场景:
中小型XML文件、需要随机访问节点或修改文档结构的场景。
示例代码

// 读取 XML 文件,展示所有书籍信息
void DomReadXML(const QString& filePath) {QFile file(filePath);if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {qDebug() << "无法打开文件:" << filePath;return;}QDomDocument doc;if (!doc.setContent(&file)) {qDebug() << "无法解析 XML 文件";file.close();return;}file.close();QDomElement root = doc.documentElement();QDomNodeList bookList = root.elementsByTagName("book");for (int i = 0; i < bookList.count(); ++i) {QDomElement book = bookList.at(i).toElement();QString id = book.attribute("id");qDebug() << "书籍 ID:" << id;QDomElement title = book.firstChildElement("title");	qDebug() << "标题:" << (title.isNull() ? "N/A" : title.text());QDomElement author = book.firstChildElement("author");qDebug() << "作者:" << (author.isNull() ? "N/A" : author.text());QDomElement price = book.firstChildElement("price");qDebug() << "价格:" << (price.isNull() ? "N/A" : price.text());qDebug() << "-------------------";}
}
// 写入 XML 文件,追加新书籍
void DomWriteXML(const QString& filePath) {QFile file(filePath);if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {qDebug() << "无法打开文件用于读取:" << filePath;return;}QDomDocument doc;if (!doc.setContent(&file)) {qDebug() << "无法读取文档内容";file.close();return;}file.close();QDomElement root = doc.documentElement();// 创建新 <book> 元素QDomElement newBook = doc.createElement("book");newBook.setAttribute("id", "4");QDomElement title = doc.createElement("title");title.appendChild(doc.createTextNode("Effective Modern C++"));QDomElement author = doc.createElement("author");author.appendChild(doc.createTextNode("Scott Meyers"));QDomElement price = doc.createElement("price");price.appendChild(doc.createTextNode("49.99"));newBook.appendChild(title);//title作为newBook的子节点newBook.appendChild(author);//author作为newBook的子节点newBook.appendChild(price);//price作为newBook的子节点root.appendChild(newBook);//newBook作为根元素的子节点// 保存更新后的文档if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) {qDebug() << "无法打开文件用于写入:" << filePath;return;}QTextStream stream(&file);doc.save(stream, 4); // 缩进 4 空格file.close();qDebug() << "成功写入 XML 文件";
}

2、流式处理,核心类为QXmlStreamReader(读取) 和 QXmlStreamWriter(写入)

流式读取(QXmlStreamReader)
基本概念:
基于拉模型的流式解析器,逐行读取XML文件,按需处理标记(Token),无需加载整个文档。
优点:
高效低内存:适合处理超大XML文件,内存占用低。
易用性:相比SAX更简洁,通过循环读取Token解析数据。
快速访问:仅解析所需部分,跳过无关内容。
缺点:
顺序访问限制:只能向前遍历,无法回溯或随机访问。
状态管理复杂:需手动维护解析状态,处理嵌套结构时逻辑较繁琐。
适用场景:
读取大文件、仅需提取部分数据或流式处理场景(如日志解析)。
示例代码

// 读取 XML 文件
void StreamReadXML(const QString& filePath) {QFile file(filePath);if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {qDebug() << "无法打开文件:" << filePath;return;}QXmlStreamReader reader(&file);while (!reader.atEnd()) {QXmlStreamReader::TokenType token = reader.readNext();if (token == QXmlStreamReader::StartElement) {if (reader.name() == "book") {QXmlStreamAttributes attrs = reader.attributes();QString id = attrs.value("id").toString();qDebug() << "书籍 ID:" << id;} else if (reader.name() == "title") {qDebug() << "标题:" << reader.readElementText();} else if (reader.name() == "author") {qDebug() << "作者:" << reader.readElementText();} else if (reader.name() == "price") {qDebug() << "价格:" << reader.readElementText();} else if (reader.name() == "mybook") {QXmlStreamAttributes attrs = reader.attributes();qDebug() << "mybook id:" << attrs.value("id").toString();qDebug() << "mybook title:" << attrs.value("title").toString();}}}if (reader.hasError()) {qDebug() << "读取错误:" << reader.errorString();}file.close();
}

流式写入(QXmlStreamWriter)
基本概念:
用于顺序生成XML文档,通过API逐步写入标签、属性和内容。
优点:
高效写入:逐步生成XML,无需构建完整结构。
代码简洁:API设计直观,易于生成标准XML格式。
低内存占用:适合动态生成大型XML文件。
缺点:
结构依赖性强:需手动管理标签闭合和嵌套,易因逻辑错误导致格式异常。
不可修改:生成后无法直接修改已写入内容。
适用场景:
顺序生成XML文件、数据导出或日志记录等场景。
示例代码

// 写入 XML 文件
void StreamWriteXML(const QString& filePath) {QFile file(filePath);if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {qDebug() << "无法打开文件:" << filePath;return;}QXmlStreamWriter writer(&file);writer.setAutoFormatting(true); // 自动缩进writer.writeStartDocument();writer.writeStartElement("book");writer.writeAttribute("id", "4");writer.writeTextElement("title", "Effective Modern C++");writer.writeTextElement("author", "Scott Meyers");writer.writeTextElement("price", "49.99");writer.writeEndElement(); // bookwriter.writeEndDocument();file.close();
}

使用建议

1、对于纯读取、纯写入、纯追加(即对原文档不做修改)的场景,优先考虑流式处理,效率更高。
2、对于中小型XML文档且需要修改原有结构和内容,考虑使用DOM方式。

相关文章:

Qt读写XML文档

XML 结构与概念简介 XML&#xff08;可扩展标记语言&#xff09; 是一种用于存储和传输结构化数据的标记语言。其核心特性包括&#xff1a; 1、树状结构&#xff1a;XML 数据以层次化的树形结构组织&#xff0c;包含一个根元素&#xff08;Root Element&#xff09;&#xff…...

htmlUnit和Selenium的区别以及使用BrowserMobProxy捕获网络请求

1. Selenium&#xff1a;浏览器自动化之王 核心定位&#xff1a; 跨平台、跨语言的浏览器操控框架&#xff0c;通过驱动真实浏览器实现像素级用户行为模拟。 技术架构&#xff1a; 核心特性&#xff1a; 支持所有主流浏览器&#xff08;含移动端模拟&#xff09; 精…...

C#黑魔法:鸭子类型(Duck Typing)

C#黑魔法&#xff1a;鸭子类型(Duck Typing) 如果它走起路来像鸭子&#xff0c;叫起来像鸭子&#xff0c;那么它就是鸭子。 鸭子类型&#xff0c;主要应用于动态语言类型&#xff0c;比如JS、Python等&#xff0c;核心理念为&#xff1a;关注对象的行为&#xff08;方法或属性…...

2025 年数维杯数学建模B题完整论文代码模型

《2025 年数维杯数学建模B题完整论文代码模型》 B题完整论文 一、赛事背景与题目总览 2025 年第十届数维杯大学生数学建模挑战赛的 B 题聚焦于“马拉松经济的高质量发展思路探索”。近年来&#xff0c;我国马拉松赛事如同一颗颗璀璨的星星&#xff0c;在城市的天空中闪耀&am…...

C++23 中的 views::chunk:深入探索与应用

文章目录 一、views::chunk 的背景与动机二、views::chunk 的基本用法语法与参数示例代码 三、views::chunk 的高级用法处理不完整块与 views::drop 和 views::take 结合 四、性能分析五、应用场景1. 批量处理数据2. 分页显示3. 并行处理 六、与其他范围适配器的组合1. 与 view…...

库室指静脉人脸门禁机 LK-BM-S10C/JR

1、采用大于等于四核处理器&#xff0c;主频大于1G&#xff1b; 2、内存≥4G DDR3&#xff1b;存储≥8G 3、核心模块采用国产工业级处理芯片和嵌入式Android实时多任务系统&#xff0c;采用模块化设计,模块间通过标准接口相连&#xff1b; 4、大于等于10英寸电容屏&#xf…...

低成本自动化改造的18个技术锚点深度解析

执行摘要 本文旨在深入剖析四项关键的低成本自动化技术&#xff0c;这些技术为工业转型提供了显著的运营和经济效益。文章将提供实用且深入的指导&#xff0c;涵盖老旧设备联网、AGV车队优化、空压机系统智能能耗管控以及此类项目投资回报率&#xff08;ROI&#xff09;的严谨…...

线程中常用的方法

知识点详细说明 Java线程的核心方法集中在Thread类和Object类中,以下是新增整合后的常用方法分类解析: 1. 线程生命周期控制 方法作用注意事项start()启动新线程,JVM调用run()方法多次调用会抛出IllegalThreadStateException(线程状态不可逆)。run()线程的任务逻辑直接调…...

运维体系架构规划

运维体系架构规划是一个系统性工程&#xff0c;旨在构建高效、稳定、安全的运维体系&#xff0c;保障业务系统的持续运行。下面从规划目标、核心模块、实施步骤等方面进行详细阐述&#xff1a; 一、规划目标 高可用性&#xff1a;确保业务系统 724 小时不间断运行&#xff0c…...

C++结构体介绍

结构体的定义 在C中&#xff0c;结构体&#xff08;struct&#xff09;是一种用户定义的数据类型&#xff0c;允许将不同类型的数据组合在一起。结构体的定义使用struct关键字&#xff0c;后跟结构体名称和一对花括号{}&#xff0c;花括号内包含成员变量的声明。 struct Pers…...

RoPE长度外推:外插内插

RoPE:假定 α \alpha α是定值 其中一半位置是用cos表示的 cos ⁡ ( k α − 2 i d ) \cos(k\alpha^{-\frac{2i}{d}}) cos(kα−d2i​)(另一半是sin)(d是词嵌入维度) 当太长如何解决: 1 直接不管—外插 缺点:超过一定长度性能急剧下降。(较大时&#xff0c;对应的很多位置编码…...

牛客练习赛138-题解

牛客练习赛138-题解 https://ac.nowcoder.com/acm/contest/109081#question A-小s的签到题 题目描述 给定一个比赛榜单&#xff1a; 第一行是 n 个不同的大写字母&#xff0c;代表题号第二行是 n 个形如a/b的字符串&#xff0c;表示每道题的通过人数和提交人数 找到通过人…...

MySQL高可用方案全攻略:选型指南与AI运维实践

MySQL高可用方案全攻略:选型指南与AI运维实践 引言:当数据库成为业务生命线 在数字化时代,数据库就是企业的"心脏"。一次数据库宕机可能导致: 电商网站每秒损失上万元订单游戏公司遭遇玩家大规模流失金融系统引发连锁反应本文将为你揭秘: MySQL主流高可用方案…...

【库(Library)、包(Package)和模块(Module)解析】

在Python中&#xff0c;**库&#xff08;Library&#xff09;、包&#xff08;Package&#xff09;和模块&#xff08;Module&#xff09;**是代码组织的不同层级&#xff0c;而import语句的导入行为与它们密切相关。以下是详细对比和解释&#xff1a; &#x1f4e6; 1. 核心概…...

记录一次使用thinkphp使用PhpSpreadsheet扩展导出数据,解决身份证号码等信息科学计数法问题处理

PhpSpreadsheet官网 PhpSpreadsheet安装 composer require phpoffice/phpspreadsheet使用composer安装时一定要下载php对应的版本&#xff0c;下载之前使用php -v检查当前php版本 简单使用 <?php require vendor/autoload.php;use PhpOffice\PhpSpreadsheet\Spreadshee…...

为什么业务总是被攻击?使用游戏盾解决方案

业务频繁遭受攻击的核心原因在于攻防资源不对等&#xff0c;攻击者利用技术漏洞、利益驱动及企业防护短板发起攻击&#xff0c;而游戏盾通过针对性架构设计实现高效防御。以下是具体分析与解决方案&#xff1a; ​​一、业务被攻击的根源​​ ​​利益驱动攻击​​ ​​勒索与数…...

4.1【LLaMA-Factory 实战】医疗领域大模型:从数据到部署的全流程实践

【LLaMA-Factory实战】医疗领域大模型&#xff1a;从数据到部署的全流程实践 一、引言 在医疗AI领域&#xff0c;构建专业的疾病诊断助手需要解决数据稀缺、知识专业性强、安全合规等多重挑战。本文基于LLaMA-Factory框架&#xff0c;详细介绍如何从0到1打造一个垂直领域的医…...

二维旋转矩阵:让图形动起来的数学魔法 ✨

大家好&#xff01;今天我们要聊一个超酷的数学工具——旋转矩阵。它就像数学中的"旋转魔法"&#xff0c;能让图形在平面上优雅地转圈圈。别被"矩阵"这个词吓到&#xff0c;其实它就是一个数字表格&#xff0c;但功能超级强大&#xff01; 一、什么是旋转…...

go语言封装、继承与多态:

1.封装&#xff1a; 封装是通过将数据和操作数据的方法绑定在一起来实现的。在Go语言中&#xff0c;封装通过结构体&#xff08;struct&#xff09;和方法&#xff08;method&#xff09;来实现。结构体的字段可以通过大小写来控制访问权限。 package stutype Person struct …...

golang -- 如何获取变量类型

目录 前言获取变量类型一、fmt.Printf二、类型断言三、类型选择四、反射 reflect.TypeOf五、reflect.Value的Type()方法 前言 在学习反射的时候&#xff0c;对reflect包中获取变量类型的函数很迷惑 比如下面这个 用Type获取变量类型的方法&#xff08;在下面提到&#xff09; …...

Missashe考研日记-day36(改版说明)

Missashe考研日记-day36 改版说明 经过一天的思考、纠结和尝试&#xff0c;博主决定对更新内容进行改版&#xff0c;如下&#xff1a;1.不再每天都发一篇日记&#xff0c;改为一周发一篇包含一周七天学习进度的周记&#xff0c;但为了标题和以前相同&#xff08;强迫症&#…...

opencv中的图像特征提取

图像的特征&#xff0c;一般是指图像所表达出的该图像的特有属性&#xff0c;其实就是事物的图像特征&#xff0c;由于图像获得的多样性&#xff08;拍摄器材、角度等&#xff09;&#xff0c;事物的图像特征有时并不特别突出或与无关物体混杂在一起&#xff0c;因此图像的特征…...

一文了解氨基酸的分类、代谢和应用

氨基酸&#xff08;Amino acids&#xff09;是在分子中含有氨基和羧基的一类化合物。氨基酸是生命的基石&#xff0c;人类所有的疾病与健康状况都与氨基酸有直接或间接的关系。氨基酸失衡可引起肝硬化、神经系统感染性疾病、糖尿病、免疫性疾病、心血管疾病、肾病、肿瘤等各类疾…...

Linux 系统安装Minio详细教程

一、&#x1f50d; MinIO 简介 MinIO 是一个高性能的对象存储服务&#xff0c;兼容 Amazon S3 接口&#xff0c;适用于大数据、AI、云原生等场景&#xff0c;支持分布式部署和高可用性&#xff0c;可作为轻量级的私有云对象存储解决方案。 二、&#x1f4e6; 安装准备 ✅ 系…...

排序算法-归并排序

归并排序是一种分治算法&#xff08;Divide and Conquer&#xff09;。对于给定的一组数据&#xff0c;利用递归与分治技术将数据序列划分成为越来越小的半子表&#xff0c;在对半子表排序后&#xff0c;再用递归方法将排好序的半子表合并成为越来越大的有序序列。 核心思想 分…...

js 两个数组中的指定参数(id)相同,为某个对象设置disabled属性

在JavaScript中&#xff0c;如果想要比较两个数组并根据它们的id属性来设置某个对象的disabled属性为true&#xff0c;你可以使用几种不同的方法。这里我将介绍几种常用的方法&#xff1a; 方法1&#xff1a;使用循环和条件判断 const array1 [{ id: 1, name: Item 1 },{ id…...

【Java基础】——集合篇

目标&#xff1a; 1.每个集合用的场景 2.每个集合的底层 一.概述 二. 三.Collection 1.通用方法 其中&#xff0c;contains方法&#xff0c;它的底层一定调用了equals方法进行比对&#xff0c;而且一定重写了equals方法&#xff0c;如果不重写equals方法&#xff0c;就是调用…...

小红书视频无水印下载方法

下载小红书&#xff08;RED/Xiaohongshu&#xff09;视频并去除水印可以通过以下几种方法实现&#xff0c;但请注意尊重原创作者版权&#xff0c;下载内容仅限个人使用&#xff0c;避免侵权行为。 方法一&#xff1a;使用在线解析工具&#xff08;推荐&#xff09; 复制视频链…...

代发考试战报:思科华为HCIP HCSE CCNP 考试通过

CCNP 300-410考试通过战报&#xff0c;HCIP云计算通过&#xff0c;HCIP数通 H12-821考试通过&#xff0c;H12-831考试通过&#xff0c;HCSP金融 H19-611考试通过&#xff0c;HCSE金融 H21-293 考试通过 报名考试一定要找正规报名&#xff0c;避免后续考试成绩被取消&#xff0…...

辉芒微离线烧录器“文件格式错误”问题解决

最近在使用辉芒微离线烧录器烧录程序时&#xff0c;提示“文件格式错误”&#xff0c;记录一下解决方法。 一、问题现象 经过多次尝试和排查&#xff0c;发现以下几种情况&#xff1a; 情况一&#xff1a;使用离线烧录器导入固件1&#xff08;boot程序&#xff09;&#xff0c…...

系统的从零开始学习电子的相关知识,该如何规划?

一、基础理论奠基&#xff08;6-12个月&#xff09; 1.1 数学与物理基础 核心内容&#xff1a; 微积分与线性代数&#xff08;高频电路建模必备&#xff09;复变函数与概率论&#xff08;信号处理与通信系统基础&#xff09;电磁场基础&#xff08;麦克斯韦方程组的物理意义&…...

网络研讨会开发注册中, 5月15日特励达力科,“了解以太网”

在线研讨会主题 Understanding Ethernet - from basics to testing & optimization 了解以太网 - 从基础知识到测试和优化 注册链接# https://register.gotowebinar.com/register/2823468241337063262 时间 北京时间 2025 年 5 月 15 日 星期四 下午 3:30 - 4:30 适宜…...

LSTM的简单模型

好的&#xff0c;我来用通俗易懂的语言解释一下这个 LSTMTagger 类是如何工作的。 1️⃣ 类的目的 这个 LSTMTagger 类是一个用于自然语言处理&#xff08;NLP&#xff09;任务的模型&#xff0c;目的是标注输入的句子&#xff0c;通常用于词性标注&#xff08;例如&#xff…...

聊聊Spring AI autoconfigure模块的拆分

序 本文主要研究一下Spring AI autoconfigure模块的拆分 v1.0.0-M6版本 (base) ➜ spring-ai-spring-boot-autoconfigure git:(v1.0.0-M6) tree -L 9 . ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── org │ │ │ └…...

LVGL源码学习之渲染、更新过程(3)---绘制和刷写

LVGL版本&#xff1a;8.1 往期回顾&#xff1a; LVGL源码学习之渲染、更新过程(1)---标记和激活 LVGL源码学习之渲染、更新过程(2)---无效区域的处理 前文提到&#xff0c;在处理完无效区域后&#xff0c;会得到一个个需要重新绘制的对象&#xff0c;这些对象将在DRAW事件中…...

CTF-DAY11

[NSSRound#16 Basic]了解过PHP特性吗 题目&#xff1a; <?php error_reporting(0); highlight_file(__FILE__); include("rce.php"); $checker_1 FALSE; $checker_2 FALSE; $checker_3 FALSE; $checker_4 FALSE; $num $_GET[num]; if (preg_match("/…...

手动修改uart16550的FIFO深度?

参考&#xff1a;修改AXI UART D16550 FIFO深度的过程记录 - lmore - 博客园...

Unity按钮事件冒泡

今天unity写程序时&#xff0c;我做了一个透明按钮&#xff0c;没图片&#xff0c;只绑了点击事件&#xff0c;把子对象文字组件也删了&#xff0c;空留一个透明按钮&#xff0c;此时运行时点击按钮是没有反应的&#xff0c;网上的教程说必须指定target graphic&#xff08;目标…...

基于Llama3的开发应用(一):Llama模型的简单部署

Llama模型的简单部署 0 前言1 环境准备1.1 硬件环境1.2 软件环境 2 Meta-Llama-3-8B-Instruct 模型简介2.1 Instruct含义2.2 模型下载 3 简单调用4 FastAPI 部署4.1 通过FastAPI简单部署4.2 测试 5 使用 streamlit 构建简易聊天界面6 总结 0 前言 本系列文章是基于Meta-Llama-…...

人工智能 机器学习期末考试题

自测试卷2 一、选择题 1&#xff0e;下面哪个属性不是NumPy中数组的属性&#xff08; &#xff09;。 A&#xff0e;ndim B&#xff0e;size C&#xff0e;shape D&#xff0e;add 2&#xff0e;一个简单的Series是由&#xff08; &#xff09;的数据组成的。 A&#xff0e;两…...

修改docker为国内源

一、编辑docker配置文件 vi /etc/docker/daemon.json二、配置国内源和修改docker数据目录 {"registry-mirrors":["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://u…...

C++八股 —— vector底层

vector底层为动态数组 类构成 class vector : protected _Vector_base_Vector_base: _M_start&#xff1a;容器元素开始的位置_M_finish&#xff1a;容器元素结束的位置_M_end_of_storage&#xff1a;动态内存最后一个元素的下一个位置 构造函数 无参构造 根据性能优先规则&a…...

postgresql 参数wal_level

wal_level决定多少信息写入到 WAL 中。默认值是replica&#xff0c;它会写入足够的数据以支持WAL归档和复制&#xff0c;包括在后备服务器上运行只读查询。minimal会去掉除从崩溃或者立即关机中进行恢复所需的信息之外的所有记录。最后&#xff0c;logical会增加支持逻辑解码所…...

Lightweight App Alternatives

The tech industry’s business model thrives on constant churn: new features, fancier designs, and heavier apps — not because they’re essential, but because they keep consumers upgrading. Stripping your phone back to basics is an act of tech self-defense.…...

SpringAI--基于MySQL的持久化对话记忆实现

SpringAI–基于MySQL的持久化对话记忆实现 项目源码 对话记忆官方介绍 SpringAI目前提供了一些将对话保存到不同数据源中的实现&#xff0c;比如: InMemoryChatMemory 基于内存存储CassandraChatMemory 在Cassandra中带有过期时间的持久化存储。Neo4jChatMemory 在Neo4j中没…...

【教学类-34-12】20250509(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+数字提示+参考图灰色)

背景介绍 制作了四款异形角拼图,初步实现效果 【教学类-34-10】20250503(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+参考图灰色)-CSDN博客文章浏览阅读1.4k次,点赞46次,收藏15次。【教学类-34-10】20250503(通义万相)4*3蝴蝶拼图(圆形、三角、正方、…...

C++编程语言:标准库:标准库概观(Bjarne Stroustrup)

第30章 标准库概观(Standard-Library Overview) 目录 30.1 引言 30.1.1 标准库设施 30.1.2 设计约束 30.1.3 描述风格 30.2 头文件 30.3 语言支持 30.3.1 对initializer_list的支持 30.3.2 对范围for的支持 30.4 异常处理 30.4.1 异常 30.4.1…...

Springboot+Vue+Mybatis-plus-Maven-Mysql项目部署

目录 VScode 1插件 2快捷键修改 3图标主题设置 4常用设置1 5设置自动换行 6颜色主题 7创建站点 8新建一个html文件 window系统设置 ps 1取色 2测量 3修改单位为像素 4放大图片 5拖动放大之后的图片 6文字大小测量 7测量文字的行高 8矩形选框切图1 9矩形选框…...

【C/C++】C++中noexcept的妙用与性能提升

文章目录 C中noexcept的妙用与性能提升1 什么情况下会抛出异常2 标记noexcept作用3 何时使用noexcept4 无异常行为标记场景5 一句话总结 C中noexcept的妙用与性能提升 在C中&#xff0c;noexcept修饰符用于指示函数不会抛出异常 1 什么情况下会抛出异常 在 C 中&#xff0c;异…...

增强学习(Reinforcement Learning)简介

增强学习&#xff08;Reinforcement Learning&#xff09;简介 增强学习是机器学习的一种范式&#xff0c;其核心目标是让智能体&#xff08;Agent&#xff09;通过与环境的交互&#xff0c;基于试错机制和延迟奖励反馈&#xff0c;学习如何选择最优动作以最大化长期累积回报。…...