【C++】新手入门指南(下)
文章目录
前言
一、引用
1.引用的概念和定义
2.引用的特性
3.引用的使用
4.const引用
5.指针和引用的关系
二、内联函数
三、nullptr
总结
前言
这篇续上篇的内容新手入门指南(上),继续带大家学习新知识。如果你感兴趣欢迎订购本专栏。
一、引用
1.引用的概念和定义
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。如:在水浒传里,林冲,外号豹子头,宋江叫"铁牛",他们都有外号,而外号的作用跟引用一样,相当于给一个变量取别名。
using namespace std;
int main()
{int a = 3;int& b = a;//这里&符号表示引用取别名int& c = a;int& d = b;cout << &a << endl;//012FF88C //这里&符号表示取地址cout << &b << endl;//012FF88Ccout << &c << endl;//012FF88Ccout << &d << endl;//012FF88C//每个变量地址是一样的return 0;
}
注:C++中为了避免引入太多的运算符,会复用C语言的一些符号,这里引用也和取地址使用了同一个符号&,大家注意区分使用。
2.引用的特性
1.引用在定义时必须初始化引用需要初始值设定值,不然在编译时不知道引用指向哪个变量导致报错
using namespace std;
int main()
{
//错误写法:int a=10;int& b;
//正确写法:int a = 10;int& b = a;return 0;
}
2.一个变量可以有多个引用
一个变量可以被多个引用指向,每个引用表示这个变量的不同别名
using namespace std;
int main()
{int a = 3;int& b = a;int& c = a;int& d = b;return 0;
}
3.引用一旦引用一个实体,再不能引用其他实体
一旦引用初始化为某个变量后,就不能指向其他变量
using namespace std;
int main()
{int x = 4, y = 5;int& z = x;z=y;//这里是把变量y赋值给引用z指向的变量x,不是把引用c又指向变量yreturn 0;
}
3.引用的使用
引用主要有两种用法是 引用传参 和 引用做返回值 ;优点: 减少拷贝提高效率和改变引用对象时同时改变被引用对象 。
引用做参数的时候,可以避免传值时的拷贝开销,提高效率。
//引用传参
using namespace std;void Swap(int& rx, int& ry)
{ int tmp = rx;rx = ry;ry = tmp;
}
int main()
{int x = 0, y = 1;cout << x << " " << y << endl;Swap(x, y);cout << x << " " << y << endl;return 0;
}
引用做返回值的时候,在取栈顶时可以直接用引用做返回值,这样出函数作用域对象还可以用。提高效率和可以修改返回对象
using namespace std;
typedef int STDataType;
typedef struct Stack
{STDataType* a;int top;int capacity;
}ST;
void STInit(ST& rs, int n = 4)
{rs.a = (STDataType*)malloc(n * sizeof(STDataType));rs.top = 0;rs.capacity = n;
}// 栈顶
void STPush(ST& rs, STDataType x)
{//assert(rs);// 满了, 扩容if (rs.top == rs.capacity){printf("扩容\n");int newcapacity = rs.capacity == 0 ? 4 : rs.capacity * 2;STDataType* tmp = (STDataType*)realloc(rs.a, newcapacity *sizeof(STDataType));if (tmp == NULL){perror("realloc fail");return;}rs.a = tmp;rs.capacity = newcapacity;}rs.a[rs.top] = x;rs.top++;
}//取栈顶
//引用做返回值
int& STTop(ST& rs)
{return rs.a[rs.top - 1];
}
4.const引用
在使用引用会出现这种情况,int& rb = a*3; double d = 12.34; int& rd = d;
a*3 和12.34 保存在⼀个临时对象中, int& rd = d 发生类型转换 ,在类型转换中会产⽣临时对象存储中间值,rb和rd引用的都是临时对象。C++规定临时对象具有常性,不能修改。因此这里权限被放大,需用常引用才可以。 所以如果引用对象是需要放在临时变量就有常性的,就需要使用常引用,权限可以缩小、平移但不能放大。
using namespace std;
int main()
{//权限不能放大:const可以把变量变常量,不能常量变变量const int a = 10;//int& ra = a;//权限可以平移://const int& ra = a;//权限可以缩小://因为const起常量的作用,所以rb虽然和b是同一个地址,但是rb不能改大只能往比b小的改int b = 20;const int& rb = b;//对于指针也是一样//权限不能放大const int* pa = &a;//int* ppa = pa;//权限可以缩小int* pb = &b;const int* ppb = pb;return 0;
}
5.指针和引用的关系
- 引用是一个变量的取别名不开空间,指针是存储一个变量地址,要开空间
- 引用在定义时必须初始化,指针建议初始化,但不是必须的。
- 引用在初始化时引用一个对象后,就不能再引用其他对象;而指针可以在任何时候可以改变指向对象。
- 引用可以直接访问指向对象,指针需要解引用才是访问指向对象。
- sizeof中含义不同,引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节,64位下是8个字节)
- 引用不存在空引用,比指针更安全,指针很容易出现空指针和野指针的问题。
二、内联函数
在C语言中,我们了解宏的定义和用法,在实现宏时会发现宏有很多弊端,比如在宏写一个加法函数 #define ADD(a, b) ((a) + (b)) 时,因为宏容易出错在语法上会出“为什么里层要加括号” 、“为什么外层要加括号”以及“为什么不能加分号”等问题。 因此C语言实现宏函数也会在预处理时替换展开,但是宏函数实现很复杂很容易出错的,且不方便调试;所以设计 inline内联函数 来代替C的宏函数。用inline修饰的函数叫做内联函数。 编译时C++编译器会在调用的地方展开内联函数,这样调用内联 函数就需要建立栈帧了,就可以提高效率。
注:vs编译器 debug版本下面默认是不展开inline的,这样方便调试,debug版本想展开需要设置一下以下两个地方。
从汇编层上看内联函数是否展开,在VS编译器上是默认不展开的,但设置一下是会展开的。
#include<iostream>
using namespace std;
inline int Add(int x, int y)
{int ret = x + y;ret += 1;ret += 1;return ret;
}
int main()
{// 可以通过汇编观察程序是否展开// 有call Add语句就是没有展开,没有就是展开了int ret = Add(1, 2);cout << Add(1, 2) * 5 << endl;return 0;
}
没设置之前不展开:
设置之后展开:
inline对于编译器而言只是一个建议,也就是说,你加了inline编译器也可以选择在调用的地方不展开,不同编译器关于inline什么情况展开各不相同,因为C++标准没有规定这个。 inline适用于频繁调用的短小函数 ,对于递归函数,代码相对多一些的函数,加上inline也会被编译器忽略。
inline不建议声明和定义分离到两个文件,分离会导致链接错误。因为inline被展开,就没有函数地址,链接时会出现报错。因为分离在两个文件,会导致预处理替换;编译时会出现语法错误;调用时,声明和定义在两个文件中,在找声明时,通过链接找到符号表,这时找不到定义,就会出现链接错误例子如下:
// F.h
#include <iostream>
using namespace std;
inline void f(int i);
// F.cpp
#include "F.h"
void f(int i)
{
cout << i << endl;
}
// main.cpp
#include "F.h"
int main()
{f(10);return 0;
}
会发生链接错误,编译报错:无法解析的外部符号 "void __cdecl f(int)" (?f@@YAXH@Z)
因为函数的声明和定义分离,在链接时出错从而编译报错。
三、nullptr
C++中NULL可能被定义为字面常量0,或者C中被定义为无类型指针(void*)的常量。不论采取何种定义,在使用空值的指针时,都不可避免的会遇到一些麻烦,本想通过f(NULL)调用指针版本的 f(int*)函数,但是由于NULL被定义成0,调用了f(int x),因此与程序的初衷相悖。f((void*)NULL); 调用会报错。
#include<iostream>
using namespace std;
void f(int x)
{cout << "f(int x)" << endl;
}
void f(int* ptr)
{cout << "f(int* ptr)" << endl;
}
int main()
{f(0);// 本想通过f(NULL)调⽤指针版本的f(int*)函数,但是由于NULL被定义成0,调⽤了f(int
x),因此与程序的初衷相悖。f(NULL);f((int*)NULL);// 编译报错:error C2665: “f”: 2 个重载中没有⼀个可以转换所有参数类型// f((void*)NULL);f(nullptr);return 0;
}
运行结果:
因此,C++11中引入nullptr,nullptr是一个特殊的关键字,nullptr是一种特殊类型的字面量,它可以转换成任意其他类型的指针类型。使用nullptr定义空指针可以避免类型转换的问题,因为nullptr只能被隐式地转换为指针类型,而不能被转换为整数类型。
总结
非常感谢大家阅读完这篇博客。希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
相关文章:
【C++】新手入门指南(下)
文章目录 前言 一、引用 1.引用的概念和定义 2.引用的特性 3.引用的使用 4.const引用 5.指针和引用的关系 二、内联函数 三、nullptr 总结 前言 这篇续上篇的内容新手入门指南(上),继续带大家学习新知识。如果你感兴趣欢迎订购本专栏。 一、…...
el-table中el-input的autofocus无法自动聚焦的解决方案
需求 有一个表格展示了一些进度信息,进度信息可以修改,需要点击进度信息旁边的编辑按钮时,把进度变为输入框且自动聚焦,当鼠标失去焦点时自动请求更新接口。 注:本例以vue2 element UI为例 分析 这个需求看着挺简单…...
vimplus 如何修改语言支持的版本,以及如何跳转路径
vimplus修改语言版本 默认的vimplus支持c的版本是17 如何修改我们需要修改.ycm_extra_conf.py文件,这个文件管理了我们的插件配置 找到 把他修改为你想要的版本 增添路径 把你安装的gcc位置提供给他,默认的目前比较老 这里都是他提前为我们准备的路…...
麒麟V10安装MySQL8.4
1、下载安装包 wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar2、解压 mkdir -p /opt/mysql tar -xvf mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql3、安装MySQL 3.1、卸载mariadb rpm -qa | grep mariadb rpm -e m…...
Varjo-XR3在UE5中,头显中间有一个方块一直显示
深色方块显示在屏幕中间的焦点区域中 屏幕中间的对焦区域中显示的黑色方块。 黑色方块是一个已知问题。它在 Varjo VRTemplate 中不可见,因为它使用具有推荐 VR 设置的前向渲染方法。 但是,如果你将延迟渲染方法与高级功能(如 Lumen、Nani…...
FastText 模型文本分类实验:从零到一的实战探索
在自然语言处理(NLP)领域,文本分类是一个基础而重要的任务,广泛应用于情感分析、主题识别、垃圾邮件过滤等多个场景。最近,我参与了一次基于 FastText 模型的文本分类实验,从数据预处理到模型构建、训练和评…...
不同经营性道路运输从业资格证申请条件全解析
在道路运输领域,获取相应的从业资格证是合法从事经营性运输工作的关键前提。不同类型的运输业务,如旅客运输、货物运输以及危险货物运输,对从业者有着不同的条件要求。 经营性道路旅客运输驾驶员 驾驶证年限:需取得相应的机动车…...
WHAT - 静态资源缓存穿透
文章目录 1. 动态哈希命名的基本思路2. 具体实现2.1 Vite/Webpack 配置动态哈希2.2 HTML 文件中动态引用手动引用使用 index.html 模板动态插入 2.3 结合 Cache-Control 避免缓存穿透2.4 适用于多环境的动态策略 总结 在多环境部署中,静态资源缓存穿透是一个常见问题…...
11、Refs:直接操控元素——React 19 DOM操作秘籍
一、元素操控的魔法本质 "Refs是巫师与麻瓜世界的连接通道,让开发者能像操控魔杖般精准控制DOM元素!"魔杖工坊的奥利凡德先生轻抚着魔杖,React/Vue的refs能量在杖尖跃动。 ——以神秘事务司的量子纠缠理论为基,揭示DOM…...
crontab 定时备份 mysql 数据库
1、使用 mysqldump 命令备份数据 1.1 备份全部数据库的数据和结构 mysqldump -uroot -p123456 -A > /data/backup/db.sql1.2 备份全部数据库的结构(加 -d 参数) mysqldump -uroot -p123456 -A -d > /data/backup/db.sql1.3 备份全部数据库的数据…...
数据库对象与权限管理-视图与索引管理
一、视图(View)管理 1. 视图的定义与本质 视图(View)是Oracle数据库中的逻辑表,它不直接存储数据,而是通过预定义的SQL查询动态生成结果集。视图的本质可以理解为: 虚拟表:用户可…...
德施曼重磅发布五大突破性技术及多款重磅新品,开启AI智能管家时代
当智能锁拥抱人文关怀,万物有灵便有了具象化的表达。 4月22日,智能锁领军品牌德施曼“万物有灵”2025全球新品发布会在乌镇隆重举行,为智能锁行业带来了AI时代的革新方案。 会上,德施曼创始人/CEO祝志凌重磅发布了五大突破性技术&…...
单元测试学习笔记(一)
自动化测试 通过测试工具/编程模拟手动测试步骤,全自动半自动执行测试用例,对比预期输出和实际输出,记录并统计测试结果,减少重复的工作量。 单元测试 针对最小的单元测试,Java中就是一个一个的方法就是一个一个的单…...
Rest Client插件写http文件直接发送请求
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言📌 插件介绍:🚀 安装方式:📚 使用示例:⚙️ 功能亮点: 前言 直接在 VSCode …...
LLM 论文精读(一)Scaling Laws for Neural Language Models
这篇文章是2020年发表的一篇LLM领域中非常重要的论文,由OpenAI发布,总结了LLM模型规模与训练数据token之间的比例关系,即我们熟知的 Scaling Laws,允许 通过观察小规模训练实验,提前预测大模型的效果表现,降…...
Spring AOP + Logback + MDC全链路日志追踪
1、背景 由于权限管理和安全规范,服务都部署到云上,只能通过日志系统查看日志。 然而,面对海量的日志数据,如何快速定位关键信息和调用链路是一个巨大的挑战。 2、方案调研 在 Spring Boot 中实现全链路日志追踪,核…...
SVT-AV1编码器初始化函数
一 函数解释 这个函数SVT-AV1编码器初始化的核心函数,负责配置编码器组件,分配资源并启动编码线程,以下时对每一行的详细解释。 函数签名和参数检查 EB_API EbErrorType svt_av1_enc_init(EbComponentType *svt_enc_component) { if (svt_enc…...
Unity 导出Excel表格
1.首先,需要导入EPPlus.dll;(我这里用的是Unity 2017.3.0f3) https://download.csdn.net/download/qq_41603955/90670669 2.代码如下: using UnityEngine; using UnityEditor; using System.IO; using OfficeOpenXm…...
Web前端开发技术——HTML5、CSS3、JavaScript
一、HTML 1.基本结构 <html lang "en"><head><meta charset"UTF-8"><meta name"Keywords" content""><meta name"Description" content""><title>Web网页标题</title&g…...
野外价值观:在真实世界的语言模型互动中发现并分析价值观
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【华为HCIP | 华为数通工程师】821—多选解析—第十二页
多选727、某台路由器的输出信息如下所示,以下描述正确的有哪些选项? A、路由器Router ID为10.0.1.1 B、路由器Router ID为10.0.2.2。 C、本路由器的接口地址为10.0.12.2。 D、本路由器是DR。 解析:display ospf peer //获取的OSPF邻居信…...
Selenium 在爬取过程中,网络响应被退出的解决方案
我在使用 Selenium 爬取网站的时候,直接get url ,却立马闪退,遇到了获取网络响应直接被退出的问题。 这通常是由于 反爬机制、浏览器检测 或 网络限制 导致的。 以下是 完整排查与解决方案: 1. 检查常见原因 问题类型典型表现可…...
楼宇自控怎样全方位融入建筑领域,为绿色建筑发展添砖加瓦
在全球积极倡导可持续发展的大背景下,绿色建筑已成为建筑领域发展的必然趋势。绿色建筑旨在减少对环境的负面影响,提高能源利用效率,为用户提供健康、舒适的室内环境。而楼宇自控系统作为建筑智能化的核心组成部分,正以其独特的技…...
语音合成(TTS)从零搭建一个完整的TTS系统-第二节-中文转拼音
一、概述 本节我们进行语音合成前端中的第二步,需要把中文转换为拼音。通过python和c两种语言进行实现,python可以直接调用pypinyin库实现。c实现是本节的重点,首先根据词典进行分词,接着把分词后的词进行词典映射,得到…...
基于springboot的停车位管理系统(源码+数据库)
12基于springboot的停车位管理系统:前端 thymeleaf、Jquery、bootstrap,后端 Springboot、Mybatis,系统角色分为:用户、管理员,管理员在管理后台录入车位信息,用户在线查找车位、预约车位,解决停…...
深入理解 Spring @Configuration 注解
在 Spring 框架中,@Configuration 注解是一个非常重要的工具,它用于定义配置类,这些类可以包含 Bean 定义方法。通过使用 @Configuration 和 @Bean 注解,开发者能够以编程方式创建和管理应用程序上下文中的 Bean。本文将详细介绍 @Configuration 注解的作用、如何使用它以及…...
15.三数之和(LeetCode)java
个人理解: 1.使用双指针做法,首先对数组进行排序 第一重for循环控制第一个数,对数组进行遍历。双指针初始化为lefti1, rigthnums.length-1。然后使用while循环移动双指针寻找合适的数。因为返回的是数,不是下标,数不能…...
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(10卷)任务书
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(10卷)任务书 模块A:大数据平台搭建(容器环境)(15分)任务一:Hadoop 伪分布式安装配置任务二:Flume安装…...
Redis—内存淘汰策略
记:全体LRU,ttl LRU,全体LFU,ttl LFU,全体随机,ttl随机,最快过期,不淘汰(八种) Redis 实现的是一种近似 LRU 算法,目的是为了更好的节约内存&…...
新能源汽车可视化大屏系统毕业设计
以下是一个基于Python和Flask框架的新能源汽车可视化大屏系统后台代码示例。这个系统提供API接口用于前端大屏展示新能源汽车相关数据。 主应用文件 (app.py) python from flask import Flask, jsonify, request from flask_cors import CORS import random from datetime imp…...
02-keil5的配置和使用
一、创建工程 1、在菜单栏”Project”,在弹出的下拉菜单,选择“New uVision Project”。 2、在弹出的对话框,填写工程的名字,例如工程名字为project。 3、为保存的工程,选择对应的芯片。 4、为当前工程,添…...
电脑硬盘丢失怎么找回?解决硬盘数据恢复的2种方法
无论是个人用户还是企业用户来讲,存储在磁盘中的文档、图片、视频、音频等数据都具有相当的价值。但在日常使用过程中,误删操作、病毒攻击、硬件故障等情况都可能造成电脑硬盘突然消失不见数据丢失。面对电脑硬盘丢失这类问题时,采取正确的应…...
【Spring】依赖注入的方式:构造方法、setter注入、字段注入
在Spring框架中,除了构造器注入(Constructor Injection)和Setter注入(Setter Injection),还有一种依赖注入方式:字段注入(Field Injection)。字段注入通过在Bean的字段上…...
涨薪技术|0到1学会性能测试第22课-关联函数web_reg_save_param_ex
前面的推文我们掌握了性能测试脚本开发3种常见的关联技术,今天开始给大家分享关联函数web_reg_save_param_ex,后续文章都会系统分享干货! LoadRunner最新版本中,使用的关联函数为web_reg_save_param_ex,以前的版本使用的关联函数为web_reg_save_param,但这两个函数实质差…...
Vue 的数据代理机制
2025/4/22 向 一、什么是数据代理机制 通过访问代理对象的属性,来间接访问目标对象的属性,数据代理机制的实现需要依赖Object.defineProperty()方法。 如下所示: <!DOCTYPE html> <html lang"en"> <head><…...
Android-KeyStore安全的存储系统
在 Android 中,AndroidKeyStore 是一个安全的存储系统,用于存储加密密钥。它提供了一种安全的方式来生成、存储和管理密钥,而无需将密钥暴露给应用程序本身。以下是如何使用 AndroidKeyStore 的基本步骤和示例代码。 检查 AndroidKeyStor…...
部署私有gitlab网站
以下是建立私有 GitLab 代码版本维护平台的完整步骤,涵盖环境准备、安装配置、初始化及日常管理,适用于企业/团队内部代码托管: 一、环境准备 1. 服务器要求(最低配置) 用途CPU内存存储系统要求小型团队(…...
(区间 dp)洛谷 P6879 JOI2020 Collecting Stamps 3 题解
题意 给定一个周长为 L L L 的圆,从一个点出发,有 N N N 个黑白熊雕像,编号为 1 1 1 到 N N N,第 i i i 个雕像在顺时针 X i X_i Xi 米处,如果你没有在 T i T_i Ti 秒内收集到这个黑白熊雕像,那…...
AtCoder 第402场初级竞赛 A~E题解
A CBC 【题目链接】 原题链接:A - CBC 【考点】 枚举 【题目大意】 找出所有的大写字母 【解析】 遍历字符串,判断是否为大写字母,如果是则输出。 【难度】 GESP二级 【代码参考】 #include <bits/stdc++.h> using namespace std;int main() {string s;ci…...
驱动开发硬核特训 · Day 17:深入掌握中断机制与驱动开发中的应用实战
🎥 视频教程请关注 B 站:“嵌入式 Jerry” 一、前言 在嵌入式驱动开发中,“中断”几乎无处不在。无论是 GPIO 按键、串口通信、网络设备,还是 SoC 上的各种控制器,中断都扮演着核心触发机制的角色。对中断机制掌握程度…...
深入理解依赖、Jar 包与 War 包:Java 开发基石探秘
一、引言 在 Java 开发的广袤天地里,依赖管理如同建筑的基石,默默支撑着项目的稳定构建与运行。而 Jar 包和 War 包,作为 Java 应用的常见打包形式,各自承载着不同的使命。本文将深入探讨依赖的重要性,并清晰解说 Jar…...
01.Python代码Pandas是什么?pandas的简介
01.Python代码Pandas是什么?pandas的简介 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ pyth…...
国产紫光同创FPGA实现SDI视频编解码+图像缩放,基于HSSTHP高速接口,提供2套工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目本博已有的 SDI 编解码方案本方案在Xilinx--Artix7系列FPGA上的应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用本方案在Xilinx--U…...
25.4.22学习总结
如何通过好友列表对聊天框的切换 首先,我们知道,你的好友列表是用ListView组件实现的,那么,接下来,我们将开始讲解如何实现切换。 一、改造数据结构 如果你是跟着我的上一篇文章做的话,应该需要修改一些的…...
Agent智能体ReAct机制深度解读:推理与行动的完美闭环
一、从Chain-of-Thought到ReAct的范式演进 1.1 传统决策机制的局限 #mermaid-svg-Jf3ygvgHcGciJvX8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Jf3ygvgHcGciJvX8 .error-icon{fill:#552222;}#mermaid-svg-Jf3y…...
UnityDots学习(四)
官方案例HelloCube和Tank学习研究: HelloCube: 通用部分: 使用Authoring根据Inspector的勾选添加为Entity添加不同Component。然后每个System会根据实体添加的Component运行不同的System逻辑。 1. MainThread 简单构造System 先看System接口定义&am…...
Debian 12.10 root 登录失败,两步解决!
大家好,这里是 DBA学习之路,专注于提升数据库运维效率。 前言 今天看到 debian 正式发布 12.10,安装完成后发现无法登录 root 用户: 这里我一开始怀疑是 root 密码错了,所以改了一下 root 密码,忘记 root …...
AI大模型:(二)2.3 预训练自己的模型
目录 1.预训练原理 2.预训练范式 1.未标注数据 2.标注数据 3.有正确答案、也有错误答案 3.手撕transform模型 3.1.transform模型代码 3.2.训练数据集 3.3.预训练 3.4.推理 4.如何选择模型 5.如何确定模型需要哪种训练 大模型预训练(Large-scale Pre-training…...
【C语言】初阶算法相关习题(一)
个人主页 文章目录 ⭐一、数字在升序数组中出现的次数🏠二、整数转换🚀三、至少是其他数字两倍的最大数🏝️四、字符个数的统计🎄五、自除数🎡六、除自身以外数组的乘积🎉七、两个数组的交集 ⭐一、数字在…...
WITH 临时表 SQL优化
在 SQL 优化中, 临时表(CTE,Common Table Expression,公共表表达式) 是一种强大的工具,它通过定义一个临时的结果集(可以理解为 “虚拟表”),让复杂查询更易读、更高效&a…...