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

C/C++ 不定参函数

C语言不定参函数

函数用法总结

Va_list 

  • 作用:类型定义,生命一个变量,该变量被用来访问传递给不定参函数的可变参数列表
  • 用法:供后续函数进调用,通过该变量访问参数列表
typedefchar* va_list;

 va_start

  • 作用:初始化va_list变量,指向可变参数列表中的第一个参数,这个宏需要知道最后一个固定参数的位置,方便从其后开始读取可变参数
  • 参数:ap(初始化的va_list变量)、last_artg(确定从哪里开始读取可变参数4)
voidva_start(va_list ap, last_arg);

va_arg

  • 作用:va_arg宏用于获取可变参数列表中的下一个参数,并将其转换为指定的类型
  • 参数:ap,type指定要获取的参数类型 
  • 返回值:返回指定类型的下一个参数值,并将va_list 变量指向下一个参数
type va_arg(va_list ap, type);

 va_end

  • 作用:用于清理va_list变量
  • 参数:ap需要清理的va_list变量
voidva_end(va_list ap);

使用事例 

使用事例

  • 至少定义一个固定参数的函数,然后后面的参数使用... 表示
  • va_list args:定义一个变量,用于存储不定参数的列表
  • va_start(args, fixeArg):初始化args,并让其指向可变参数列表的开始;fixeArg则是最后一个固定参数,用于确定从哪里开始寻找可变参数
  • va_arg(args,int):获取当前参数,类型设置为int,并将指针移动到下一个参数
  • va_end(args):清理va_list,结束不定参数的获取

#include<stdarg.h>
#include <stdio.h>
// 定义一个不定参函数
void exampleFunction(int fixedArg, ...)
{
va_list args;
va_start(args, fixedArg);// 获取不定参
int nextArg;
while ((nextArg = va_arg(args, int)) != 0)
{printf("Argument: %d\n", nextArg);
}va_end(args);
}int main()
{exampleFunction(1, 2, 3, 4, 5, 0); // 0作为终止条件return 0;
}

#include<iostream>
#include <cstdarg>
void printNum(int n, ...) 
{va_list al;va_start(al, n); // 让al指向n参数之后的第一个可变参数for (int i = 0; i < n; i++) {int num = va_arg(al, int); // 从可变参数中取出一个整形参数std::cout << num << std::endl;}va_end(al); // 清空可变参数列表--其实是将al置空
}int main() {printNum(3, 11, 22, 33); // 输出:11 22 33printNum(5, 44, 55, 66, 77, 88); // 输出:44 55 66 77 88return 0;
}

vasprintf函数

格式化输出写入一个动态分配字符串

  • char **strp:指向字符指针的指针,用于接收分配的内存的地址,vasprintf 会为存储格式化后的字符串动态分配内存,并将其地址存储在 *strp 中。调用者需要负责在使用完字符串后使用 free() 函数释放这块内存
  • const char *fmt:这是格式化字符串,类似于 printf 函数中的格式化字符串。它可以包含格式说明符(如 %d, %s 等),并且需要与后续的可变参数相匹配
  • va_list ap:这是一个 va_list 类型的变量,用于传递可变参数列表。它通常通过 va_start 宏初始化

返回值

  • 成功:返回生成字符串的长度
  • 失败:返回-1,同时将*strp设置成NULL
intvasprintf(char **strp, constchar *fmt, va_list ap);
  • 函数create_message:初始化变量ap,从fmt之后的参数开始获取可变参数
  • vasprintf:根据fmt中的格式化字符串,以及ap生成最终字符串,动态分配内存存储生成的字符串,并将其存储在strp中(将格式化字符格式和可变参数结合,生成固定格式的消息,存储在strp中)
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>int create_message(char **strp, const char *fmt, ...) {va_list ap;va_start(ap, fmt);int result = vasprintf(strp, fmt, ap);va_end(ap);return result;
}int main() {char *message;int length = create_message(&message, "Hello, %s! You have %d new messages.", "Alice", 5);if (length != -1) {printf("Generated string: %s\n", message);printf("String length: %d\n", length);free(message);  // 记得释放分配的内存} else {fprintf(stderr, "Memory allocation failed\n");}return 0;
}//
Generated string: Hello, Alice! You have 5 new messages.
String length: 34

C++风格不定参

不定参宏实现日志功能

  • 宏定义:#define Log( fmt , ...):定义一个Log宏,该宏接受一个格式化字符串fmt,以及一个可变数量的附加参数
  • __FILE__和 __LINE__:预定义宏,当前源文件的文件名和行号
  • ##__VA_ARGS:宏的可变参数部分为空的时候,可以自动取出前面的逗号,避免语法错误

#include<iostream>
#include <cstdarg>
#define LOG(fmt, ...) printf("[%s:%d] " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)int main()
{LOG("%s-%s", "hello", "世界");LOG("%s-%s", "hello", "中国");return 0;
}

实现C风格的不定参函数

基本与C语言风格相同

#include<iostream>
#include <cstdarg>
void printNumbers(int count, ...) 
{va_list args;va_start(args, count);  // 初始化 va_list 并将其指向 count 之后的第一个可变参数for (int i = 0; i < count; ++i) {int num = va_arg(args, int);  // 逐个获取参数std::cout << num << " ";}va_end(args);  // 清理 va_liststd::cout << std::endl;
}int main() {printNumbers(3, 10, 20, 30);  // 输出: 10 20 30printNumbers(5, 1, 2, 3, 4, 5);  // 输出: 1 2 3 4 5return 0;
}

 C++11可变模版

通过递归模版展开

#include<iostream>
void print() {
std::cout << std::endl;  // 递归基例:什么都不做,只是结束递归
}template<typename T, typename... Args>void print(T first, Args... args) {std::cout << first << " ";  // 打印第一个参数print(args...);  // 递归调用 print 处理剩余参数
}int main() {print(1, 2.5, "Hello", 'c');  // 输出: 1 2.5 Hello creturn 0;
}

C++17折叠表达式

#include<iostream>
template<typename... Args>
void print(Args... args) {(std::cout << ... << args) << std::endl;  // 使用折叠表达式展开参数包
}int main() {print(1, 2.5, "Hello", 'c');  // 输出: 1 2.5 Hello creturn 0;
}

ofstream

 专门用于文件输出操作,就是将数据写入文件fstreamstd::basic_ofstream 的一个实例化,std::basic_ofstream 是一个模板类,用于处理各种字符类型的文件输出。ofstream 专门处理 char 类型的文件

基本使用总结

文件打开关闭

  • ofstream对象可以利用自身构造或者open方法打开文件,文件只要被打开,程序就可以将数据写入文件
  • 程序结束或者该对象销毁的到时候,文件会自动关闭,也可以手动关闭文件,即调用close()方法
std::ofstream file("example.txt");
if (file.is_open()) {// 文件已成功打开,可以进行写入操作
}

写入数据

  • 支持向文件写入多种类型的数据
std::ofstream file("example.txt");
if (file.is_open()) {file << "Hello, World!" << std::endl;file << 123 << std::endl;file << 45.67 << std::endl;
}

 检查文件状态

  • is_open():检查文件是否成功打开
  • good():检查文件流是否处于有效状态
  • fail:检查是否出现了某种错误
std::ofstream file("example.txt");
if (!file) {std::cerr << "Failed to open the file." << std::endl;
}

文件模式

  • std::ios::out:默认模式,表示文件用于写入。
  • std::ios::app:追加模式,在文件末尾添加内容而不覆盖已有内容。
  • std::ios::trunc:清空文件内容(默认行为,如果文件已存在)。
  • std::ios::binary:以二进制模式打开文件,而非文本模式
std::ofstream file("example.txt", std::ios::app);

 自动资源管理

  • 内部是RAII模式管理文件资源,只要该对象超出作用域,文件就会自动关闭
{std::ofstream file("example.txt");file << "This will be written to the file." << std::endl;
} // file 对象超出作用域,文件自动关闭

ifstream

标准库中的一个类,属于 <fstream> 头文件,它用于文件输入操作,即从文件中读取数据ifstreamstd::basic_ifstream 的一个实例化,std::basic_ifstream 是一个模板类,用于处理各种字符类型的文件输入。ifstream 专门处理 char 类型的文件

基本使用总结

 文件打开和关闭,与Ofstream相同,构造函数打开,打开后程序可以从文件中读取数据,程序结束或者对象被销毁的时候,文件自动关闭。手动关闭就是close()

std::ifstream file("example.txt");
if (file.is_open()) {// 文件已成功打开,可以进行读取操作
}

读取数据,使用>>提取运算符从文件中读取数据

std::ifstream file("example.txt");
if (file.is_open()) {std::string str;int num;file >> str >> num;std::cout << "Read string: " << str << ", number: " << num << std::endl;
}

 检查文件状态,is_open是否成功打开,good()文件流是否处于有效状态,fail检查是否错误

std::ifstream file("example.txt");
if (!file) {std::cerr << "Failed to open the file." << std::endl;
}

 文件模式

  • std::ios::in:默认模式,表示文件用于读取。
  • std::ios::binary:以二进制模式打开文件,而非文本模式
std::ifstream file("example.txt", std::ios::binary);

 

相关文章:

C/C++ 不定参函数

C语言不定参函数 函数用法总结 Va_list 作用&#xff1a;类型定义&#xff0c;生命一个变量&#xff0c;该变量被用来访问传递给不定参函数的可变参数列表用法&#xff1a;供后续函数进调用&#xff0c;通过该变量访问参数列表 typedefchar* va_list; va_start 作用&#xff…...

C语言——函数专题

1.概念 在C语言中引入函数的概念&#xff0c;有些翻译为子程序。C语言中的函数就是一个完成某项特定任务的一小段代码&#xff0c;这个代码是有特殊的写法和调用方法的。一般我们可以分为两种函数&#xff1a;库函数和自定义函数。 2.库函数 C语言国际标准ANSIC规定了一些常…...

springboot打可执行jar包

1. pom文件如下 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><m…...

【SQL】科目种类

目录 题目 分析 代码 题目 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中&#xff0c;(subject_id, dept_id) 是该表的主键。 该表…...

【深度学习】【语音】TTS,最新TTS模型概览,扩散模型TTS,MeloTTS、StyleTTS2、Matcha-TTS

文章目录 基础介绍对比基础介绍 MeloTTS: MeloTTS 是 MyShell.ai 开发的一个多语言语音合成模型,支持包括英语、西班牙语、法语、中文、日语和韩语等多种语言。它以高质量的语音合成为特色,尤其擅长处理中英混合内容。该模型优化了在 CPU 上的实时推理能力,使其在多种应用场…...

【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds

原文链接&#xff1a;https://arxiv.org/abs/2407.18232 简介&#xff1a;Transformer在3D点云感知任务中有二次复杂度&#xff0c;难以进行长距离关系建模。线性RNN则计算复杂度较低&#xff0c;适合进行长距离关系建模。本文提出基于窗口的网络线性组RNN&#xff08;即对分组…...

打造高可用集群的基石:深度解析Keepalived实践与优化

高可用集群 集群类型 集群类型主要分为负载均衡集群&#xff08;LB&#xff09;、高可用集群&#xff08;HA&#xff09;和高性能计算集群&#xff08;HPC&#xff09;三大类。每种集群类型都有其特定的应用场景和优势。 1. 负载均衡集群&#xff08;LB&#xff09; 负载均衡集…...

Web大学生网页作业成品——环保主题介绍网页网站设计与实现(HTML+CSS)(5个页面)

&#x1f389;&#x1f389;&#x1f389; 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…...

Qt登录窗口设计

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标类 #include <QPushButton> #include <QLineEdit> //行编辑 #include <QLabel> #include <QTextEdit> #include <QMovie>class Widge…...

探索数据矿藏:我的AI大模型与数据挖掘实战经验分享

&#x1f680; 探索数据矿藏&#xff1a;我的AI大模型与数据挖掘实战经验分享 &#x1f496; 前言&#xff1a;数据的金矿&#xff0c;AI的翅膀 在人工智能的浪潮中&#xff0c;我有幸作为项目负责人&#xff0c;带领团队深入挖掘数据的潜力&#xff0c;利用AI大模型的力量&am…...

linux C语言strcat函数及相关函数

讯飞星火 strcat函数是C语言中的一个字符串处理函数,用于将一个字符串追加到另一个字符串的末尾。它的原型如下: char *strcat(char *dest, const char *src);参数说明: dest:目标字符串,即要将src字符串追加到这个字符串的末尾。src:源字符串,即要追加到dest字符串末…...

使用 sort 进行文本文件处理

sort 使用经验笔记 一、简介 sort 是一个命令行工具&#xff0c;用于对文本文件中的行进行排序。它广泛应用于 Unix/Linux 系统中&#xff0c;可以用来对文件的内容进行简单的排序操作&#xff0c;也可以与其他命令结合使用来完成更复杂的任务。 二、基本用法 排序文件: sor…...

HarmonyOS笔记4:从云数据库获取数据

移动应用获取数据的方式主要有&#xff1a; 1.从网络中获取数据接口API。 2.从华为云数据库获取云数据库的资源。 3.从移动终端直接获取本地的数据 在HarmonyOS笔记3中已经完成了方式一从网络中获取数据接口API的方式。在本篇笔记中&#xff0c;将讨论从云数据库中获取数据。 因…...

QT5生成独立运行的exe文件

目录 1 生成独立运行的exe文件1.1 设置工程Release版本可执行文件存储路径1.2 将工程编译成Release版本 2 使用QT5自带的windeployqt拷贝软件运行依赖项3 将程序打包成一个独立的可执行软件exe4 解决QT5 This application failed to start because no Qt platform plugin could…...

LabVIEW光纤水听器闭环系统

开发了一种利用LabVIEW软件开发的干涉型光纤水听器闭环工作点控制系统。该系统通过调节光源频率和非平衡干涉仪的光程差&#xff0c;实现了工作点的精确控制&#xff0c;从而提高系统的稳定性和检测精度&#xff0c;避免了使用压电陶瓷&#xff0c;使操作更加简便。 项目背景 …...

Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中&#xff0c;流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 if、case、for、while 等&#xff0c;它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构&#xff1a; 1. if 语句 if 语句用于条件判断&#xff0c;执行符合条件的…...

【redis的大key问题】

在使用 Redis 的过程中&#xff0c;如果未能及时发现并处理 Big keys&#xff08;下文称为“大Key”&#xff09;&#xff0c;可能会导致服务性能下降、用户体验变差&#xff0c;甚至引发大面积故障。 本文将介绍大Key产生的原因、其可能引发的问题及如何快速找出大Key并将其优…...

HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输

HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡&#xff0c;能够在标准的桌面工作站中安装多达16个M.2 SSD&#xff0c;实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…...

ARM 裸机与 Linux 驱动对比及 Linux 内核入门

目录 ARM裸机代码和驱动的区别 Linux系统组成 内核五大功能 设备驱动分类 内核类型 驱动模块 驱动模块示例 Makefile配置 命令 编码辅助工具 内核中的打印函数 printk 函数 修改打印级别 ​编辑 打印级别含义 驱动多文件编译 示例 模块传递参数 命令行传递参数…...

0101DNS TCP fallback on UDP query timeout disabled-redission-中间件

文章目录 1.问题描述2.临时解决方案 结语 1.问题描述 Springcloud 项目&#xff0c;微服务模块使用redission&#xff0c;启动报错 DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.相关软件版本如下 软件版本描述springboot2.7.18spr…...

位运算

x1010 原码&#xff1a;000...1010 &#xff08;一共32位&#xff09; 反码&#xff1a;111...0101 &#xff08;~x&#xff09; 补码&#xff1a;111...0110 &#xff08;反码1&#xff09;&#xff08;-x&#xff09; 1、n 的二进制表示中第 k 位是几 #include<iost…...

MemFire Cloud是否真的可以取代后端

近年来&#xff0c;随着前端技术的迅速发展&#xff0c;前端工程师们越来越多地开始思考一个问题&#xff1a;“我还能不能不依赖后端&#xff1f;” 这种想法并非空穴来风&#xff0c;尤其是随着像MemFire Cloud这样的工具出现&#xff0c;它不仅能让开发者在没有后端的情况下…...

数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆

文章目录 1. 自上而下的上滤&#xff1a;算法2. 自上而下的上滤&#xff1a;效率3. 自下而上的下滤&#xff1a;算法4. 自下而上的下滤&#xff1a;实例5. 自下而上的下滤&#xff1a;效率 1. 自上而下的上滤&#xff1a;算法 在介绍过完全二叉堆标准的静态和动态操作接口之后…...

Java | Leetcode Java题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }...

定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新

摘要:随着科技的飞速发展和消费者需求的日益多元化&#xff0c;传统商业模式正经历着前所未有的变革。在数字化转型的大潮中&#xff0c;定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式&#xff0c;凭借其独特的个性化定制能力、高效的线上线下融合&#xff08;O2O&am…...

Spring MVC Controller返回json日期格式配置失效的解决办法

如题&#xff0c;Spring MVC 4.3.0版本&#xff0c;配置jackson读写json。Controller层方法返回值对象包含java.util.Date类型的属性&#xff0c;并且在applicationContext.xml中配置了jackson的日期格式&#xff1a; <mvc:annotation-driven><mvc:message-converters…...

3.Default Constructor的构造操作

目录 1. 问题引入 2. 4种implicitly声明的default constructor 1. 问题引入 “default constructors......在需要的时候被编译产生出来”。关键词是“在需要的时候”&#xff0c;被谁需要&#xff0c;做什么事情&#xff1f;看看下面的代码&#xff0c;然后梳理下思路。 cl…...

CSS的:current伪类:精准定位当前活动元素

CSS&#xff08;层叠样式表&#xff09;是控制网页样式的核心语言。随着CSS4的提出&#xff0c;一系列新的选择器被引入&#xff0c;其中:current伪类便是这些新特性之一。:current伪类允许开发者选择当前处于活动状态的元素&#xff0c;这在创建动态和交互性网页时非常有用。本…...

搭建个人网站

一 个人搭建网站需要进行的操作 详细步骤&#xff1a; 1 网站目标&#xff1a;搭建在线查看法拍房拍卖价格的预测模型&#xff0c;输出预测结果 2 实际功能&#xff1a;在线爬取 阿里法拍网站的信息 3 根据实时模型建模预测法拍价格和成交概率 要搭建一个能够在线查看法拍房拍卖…...

机器学习课程学习周报八

机器学习课程学习周报八 文章目录 机器学习课程学习周报八摘要Abstract一、机器学习部分1.1 self-attention的计算量1.2 人类理解代替自注意力计算1.2.1 Local Attention/Truncated Attention1.2.2 Stride Attention1.2.3 Global Attention1.2.4 聚类Query和Key 1.3 自动选择自…...

福泰轴承股份有限公司进销存系统pf

TOC springboot413福泰轴承股份有限公司进销存系统pf 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#…...

【k8s从节点报错】error: You must be logged in to the server (Unauthorized)

k8s主节点可以获取nodes节点信息&#xff0c;但是从节点无法获取&#xff0c;且报错“error: You must be logged in to the server (Unauthorized)” 排查思路&#xff1a; 当时证书过期了&#xff0c;只处理的主节点的证书过期&#xff0c;没有处理从节点的 kubeadm alpha …...

风清扬/基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目

基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 安装教程 参与贡献 Fork 本仓库新…...

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记

task1: 传送门 task2&#xff1a; 传送门 task3: 传送门 目录 Task1 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4…...

数组---怎么样定义和引用数组

一怎么定义数组 例 int a[10]; //定义了一个一维数组&#xff0c;数组名为a&#xff0c;此数组包含10个整型元素 所以我们了解到数组的基本定义为 类型符 数组名 [常量表达式] 定义数组可以包括常量和符号常量如 int [ 35 ];但是不能利用变量定义如 int n&#xff1b; …...

Nginx—Rewrite

目录 一、Nginx—Rewrite概述 1、常用的Nginx正则表达式 2、Rewrite功能 3、Rewrite跳转实现 4、Rewrite执行顺序和语法格式 二、location概述 1、location分类 2、location 常用的匹配规则 3、location 优先级 案例一&#xff1a; 案例二&#xff1a; 案例三&…...

《深入浅出WPF》读书笔记.5控件与布局(上)

《深入浅出WPF》读书笔记.5控件与布局(上) 背景 深入浅出WPF书籍学习笔记附代码。WPF中数据是核心是主动的,UI是数据的表达是被动的。 程序的本质是数据算法&#xff1b;控件的本质是数据行为&#xff1b; 5.控件与布局 一、6类控件派生关系 1.布局控件:可以容纳多个控件…...

二叉树的判断

二叉树的判断 判断一颗二叉树是不是搜索二叉树 &#xff08;左边的比根小&#xff0c;右边的比根大&#xff09; 中序遍历一下&#xff0c;如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候&#xff0c;如果返回右孩子没有左孩子&#x…...

Hive3:常用的内置函数

1、查看函数列表 -- 查看所有可用函数 show functions; -- 查看count函数使用方式 describe function extended count;2、数学函数 -- round 取整&#xff0c;设置小数精度 select round(3.1415926); -- 取整(四舍五入) select round(3.1415926, 4); -- 设置小数精度4位(四…...

设计模式---构建者模式(Builder Pattern)

构建者模式&#xff08;Builder Pattern&#xff09; 是一种创建型设计模式&#xff0c;旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象&#xff0c;这些对象由多个部分组成或具有多个可选属性。 构建者模式的核…...

Pytorch中transform的应用

在PyTorch中&#xff0c;transforms模块主要用于对图像进行预处理和数据增强&#xff0c;以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等&#xff0c;以及对图像进行标准化处理。下面将详细介绍一些常用的transforms操作及其应用。 1. 常用的transfor…...

okular阅读软件简介

okular阅读软件官网&#xff1a;https://okular.kde.org/zh-cn/ Okular 是一款由 KDE 开发的跨平台文档阅读器&#xff0c;以其功能丰富、轻巧快速而著称。它支持多种文件格式&#xff0c;包括 PDF、EPub、DjVu、MD 文档&#xff0c;以及 JPEG、PNG、GIF、Tiff 和 WebP 图像&a…...

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系

【书生大模型实战营&#xff08;暑假场&#xff09;闯关材料】基础岛&#xff1a;第1关 书生大模型全链路开源体系 简介一、背景介绍1.1 背景介绍1.2 全链路开源开放体系的优势 二、全链路开源开放体系的主要特点2.1 模型组件的公开和共享2.2 数据集的公开和共享2.3 模型的互操…...

掌握抽象工厂模式:打造灵活且强大的跨平台产品族

抽象工厂模式是一种创建型设计模式&#xff0c;它的核心思想是提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。这种模式通过使用抽象工厂来封装和隔离具体产品的创建过程&#xff0c;使得客户端可以通过工厂接口来创建一族产品&#xff0c;从…...

【Hadoop】建立圈内组件的宏观认识(大纲版)

Hadoop生态圈解析&#xff1a;各组件的主要功能及作用详解 Hadoop生态圈是由一系列开源组件组成的&#xff0c;这些组件共同构建了一个大规模分布式计算和存储平台。 01存储类型组件 HDFS Hadoop体系的核心组件之一&#xff0c;它是一个分布式文件系统&#xff0c;被设计用于存…...

NFS主从同步Rsync、sersync2

准备工作检查selinux 防火墙 #关闭 selinux sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config #关闭防火墙 systemctl stop firewalld;systemctl disable firewalld1.安装nfs相关包 # 所有节点安装nfs相关包 yum install nfs-utils -y systemctl enable nfs-utils …...

uniapp项目中,在原有数据中增加选中的状态,数据不改变

uniapp项目中&#xff0c;在原有数据中增加选中的状态&#xff0c;选中后打印的数据显示有变化&#xff0c;然而文本的数据并没有发生变化 看代码 export default {data() {return {thicate: [{ id: 1, text: "Item 1" },{ id: 2, text: "Item 2" },{ id…...

WPF自定义控件

控件模板 顾名思义就是在原有的控件上进行模版修改成自己需要的样式 把ProgressBar修改为一个水液面的进度条 <Window x:Class"XH.CustomLesson.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…...

Java中的全局异常处理器 -- GlobalExceptionHandler

开发记录&#xff1a;全局异常处理器笔记 import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.RedisConnectionFailureException; im…...

R语言文本挖掘-万字详细解析tm包

tm包&#xff08;Text Mining Package&#xff09;是R语言中用于文本挖掘的强大工具包&#xff0c;它提供了一系列的功能来处理和分析文本数据。偶然看到这个包&#xff0c;我们一起看看其中的基本功能&#xff1a; 数据载入&#xff1a;tm包支持从多种数据源载入文本数据&…...