C++武功秘籍 | 入门知识点
目录
0. 前言
1. C++的第一个程序
2. 域
2.1 分类
2.2 作用
2.3 命名空间
2.3.1 定义
2.3.2 namespace概念
2.3.3 使用
3. 输入和输出
3.1
3.2 cin
3.3 cout
3.4 endl
4. 缺省参数
4.1 定义
4.2 分类
4.3 特点
5. 函数重载
5.1 定义
5.2 类型分类
5.2.1.参数类型不同
5.2.2. 参数个数不同
5.2.3.参数l类型顺序不同
tip:
6. 引用
6.1 概念
6.2 特点
6.3 简单使用
6.4 const引用
6.4.1 概念
6.4.2用法
6.5 指针和引用
7.inline相关概念
8.nullptr相关概念
9. 总结
0. 前言
今天,咱儿,来学习一名新的语言C++。在正式敲代码之前,我们先来熟悉一下一些入门的基础知识。👇👇👇
1. C++的第一个程序
#include<iostream>
using namespace std;
int main()
{cout<<"Hello world\n"<<endl;return 0;
}
2. 域
2.1 分类
局部域、全局域、命名空间域、类域。
2.2 作用
影响编译查找逻辑(当发生冲突时:类域>局部域>全局域),局部域和全局域还可能会影响变量的生命周期。
2.3 命名空间
2.3.1 定义
在C/C++中,变量、函数和后面要学到的类都是大量存在的。如果将这些变量、函数和类的名称都存放于全局作用域中,可能会导致很多冲突。这时,我们就需要使用命名空间,它目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,而namespace就是针对这种问题的一个关键字。
形式:namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。eg: namespace xiaodenger { int a=0;}
2.3.2 namespace概念
1.它的本质是定义一个域,与全局域相互独立,来避免命名冲突。
2.只能定义在全局,不过,可以嵌套调用哦🤭🤭🤭
namespace xiaodenger
{namespace nam1 //这里将nam1嵌套在xiaodenger中{int a=1;return a+1;}namespace nam2 //这里将nam2嵌套在xiaodenger中{int a=1; // 这里的a与nam1中的a在两个不同的域中,不会冲突return a+2; // 但是,如果没有 nam1和nam2,直接写,就会发生冲突}
}
3.多文件中定义的同名namespace,会合并到一起,就像同一个namespace一样,不会冲突。
4.C++标准库都放在⼀个叫std(standard)的命名空间中。
2.3.3 使用
咱们要使用命名空间中定义的变量/函数,有三种方式:
• 指定命名空间访问,项目中推荐。
#include<iostream>
namespace xiaodenger
{int a = 1;int b = 2;
}
int main()
{std::cout << a << std::endl; // 编译报错:error C2065:“a”:未声明的标识符std::cout << xiaodenger::a <<std:: endl; //输出 1return 0;
}
• using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员时推荐。
#include<iostream>
namespace xiaodenger
{int a = 1;int b = 2;
}
using namespace std; //展开C++标准库
using xiaodenger::b ;// 展开命名空间中部分成员
int main()
{cout << xiaodenger::a << endl;//输出1cout << b << endl; //输出2return 0;
}
• 展开命名空间中全部成员,项目中不推荐,冲突风险大,日常练习可以适当使用😄。
eg:⼀般日常练习中我们可以using namespace std,实际项目开发中不建议使用。
#include<iostream>
namespace xiaodenger
{int a = 1;int b = 2;
}
// 展开命名空间中全部成员
using namespace xiaodenger;
using namespace std; //展开C++标准库
int main()
{cout<<xiaodenger::a<<endl; //输出1cout<<xiaodenger::b<<endl; //输出2return 0;
}
3. 输入和输出
3.1<iostream>
定义:<iostream>是Input Output Stream的缩写,是标准的输入、输出流库(IO流),定义了标准的输入、输出对象。
tip: vs系列编译器,也可以在<iostream>中使用printf 和scanf。其他编译器可能会报错。
3.2 cin
1.std::cin 是istream类的对象,它主要面向窄字符(narrowcharacters(oftypechar))的标准输入流。
2.cin搭配'>>'使用。'>>'称为“提取运算符”。eg:cin>>a;//输入a的值。
3.3 cout
1.std::cout 是ostream类的对象,它主要⾯向窄字符的标准输出流。
2.cout搭配'<<'使用。'<<'称为“插入运算符”。eg:cout<<a;//输出a的值。
3.4 endl
std::endl 是⼀个函数,流插入输出时,相当于插入一个“\n” + 刷新缓冲区。
4. 缺省参数
4.1 定义
缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。
若调用该函数时,没有指定实参 ,则采该形参的缺省值;否则使用指定的实参。
#include <iostream>
#include <assert.h>
using namespace std;
void Fun(int a = 0)
{cout << a << endl;
}
int main()
{Fun();// 没有传参时,使⽤参数的默认值Fun(8); // 传参时,使⽤指定的实参return 0;
}
4.2 分类
缺省参数分为全缺省和半缺省参数。(有时, “缺省参数”也叫“默认参数”)
4.3 特点
1.C++规定,半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。
2.函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省 值。
#include <iostream>
using namespace std;
// 全缺省
void Func1(int a = 1, int b = 2, int c = 3)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}// 半缺省
void Func2(int a, int b = 1, int c = 2)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}
int main()
{Func1(); //输出 a=1 b=2 c=3Func1(4); //输出 a=4 b=2 c=3Func1(4, 5); //输出 a=4 b=5 c=3Func1(4, 5, 6); //输出 a=4 b=5 c=6Func2(10); //输出 a=10 b=1 c=2Func2(10, 20); //输出 a=10 b=20 c=2
//Func1(10, , 30); //不能间断赋缺省值return 0;
}
5. 函数重载
5.1 定义
C++支持持在同⼀作用域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。此时,同名函数就是重载。
5.2 类型分类
5.2.1.参数类型不同
eg : int Add(int a, int b); 和 int Add(float a, float b);
5.2.2. 参数个数不同
eg : int f(int n); 和 int f();
5.2.3.参数l类型顺序不同
eg: void f(int a, char b); 和 void f( char a,int b);
tip:
返回值不同不能作为重载条件,因为调用时可能无法区分(有时不需要返回值,有时候只要看看返回值是否大于0)。
eg: void f() ; 和 int f();
6. 引用
6.1 概念
1.引用不是新定义⼀个变量,只是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间, 它和它引用的变量共用同⼀块内存空间。
2.形式:
类型& 引用别名=引用对象;
eg:
int a = 0;
int & b = a; // 引用: b 是 a 的别名
tip:C++中&既可以代表引用,也可以代表取地址。(有点小坑😔)一般情况下,类型& 引用别名=引用对象; 时为引用,其他情况下为取地址。
6.2 特点
1.引用在定义时必须初始化;
2.⼀个变量可以有多个引用;
3.引用⼀旦引用⼀个实体,再不能引用其他实体。
【这里小邓儿,给咱举个形象的例子:🤭🤭🤭引用就像是爱上一个人。一旦我爱上你(我是你的引用),就不会再去爱别人(我不能是其他人的引用)。即使有很多人爱上我,(我可以有其它引用)但是,我始终只爱你一人。(我一直都只是你的引用)❤❤❤】
6.3 简单使用
1.引用传参和引用做返回值中减少拷贝,提高效率;
2.改变引用对象时,同时改变被引用对象。
#include <iostream>
using namespace std;
void Swap(int& rx, int& ry) //rx是x的别名;ry是y的别名
{int tmp = rx;rx = ry;ry = tmp;
}
int main()
{int x = 0, y = 1;cout << x << " " << y << endl; //输出0 1Swap(x, y);cout << x << " " << y << endl; //输出1 0return 0;
}
6.4 const引用
6.4.1 概念
当对象被const修饰(具有‘常性’---不能直接修改,可以间接修改 vs ‘常量’---不能修改)时,必须用const引用才能引用该对象。而引用普通对象,也可以用const引用。
6.4.2用法
以下的权限是从右向左看(●'◡'●)
1.权限不能放大
1.❌错误
const int a = 10;
int& b = a; //error 右边a不能被修改,而左边int是可修改的2.❌错误
int a = 10;
double & b = a; //error 右边是double类型,而左边是int类型
2.权限可以平移
const int a = 10;
const int& b = a; //此时b是a的别名,左右两边都是const int 均不能修改
3.权限可以缩小
int a = 10;
const int& b = a; //此时b是a的别名,右边是可修改变量,左边是不能修改的
tip:区别引用和赋值
const int a=1;
const int &b=a; //引用
int c=a; //赋值
6.5 指针和引用
1.指针要开辟空间,引用不开辟;
2.引用必须初始化,指针建议初始化;
3.引用在初始化时引用⼀个对象后,不能再引用其他对象; 而指针可以在不断地改变指向对象。(从这里儿,我们可以将“引用”堪称一个“好男人”,而“指针”更像是一个“渣男”)。
4.引用可以直接访问指向对象,指针需要解引用才是访问指向对象。
7.inline相关概念
1.用inline修饰的函数叫做内联函数;
2.编译器会在调用的地方展开内联函数,会建立栈帧,可以提高效率;
3.C++设计了inline目的就是替代C的宏函数(define);
4.inline不能将声明和定义分离到两个文件,分离会导致链接错误。
8.nullptr相关概念
1.C++11中引入nullptr,nullptr是⼀个特殊的关键字,它可以转换成任意其他类型的指针类型。
2.使用nullptr定义空指针可以避免类型转换的问题,因为nullptr只能被隐式地转换为指针类型,而不能被转换为整数类型。
3.C++中NULL可能被定义为字面常量0,或者C中被定义为无类型指针(void*)的常量。这也是为什么咱们要引入nullprt。
9. 总结
今天,咱对C++入门的相关概念进行了梳理,希望小邓儿可以和大家一起学习进步学习💪💪💪
都看这么久了,顺带一键三连呗(●'◡'●)
相关文章:
C++武功秘籍 | 入门知识点
目录 0. 前言 1. C的第一个程序 2. 域 2.1 分类 2.2 作用 2.3 命名空间 2.3.1 定义 2.3.2 namespace概念 2.3.3 使用 3. 输入和输出 3.1 3.2 cin 3.3 cout 3.4 endl 4. 缺省参数 4.1 定义 4.2 分类 4.3 特点 5. 函数重载 5.1 定义 5.2 类型分类 5.2.1.参数类型不同 5.2.2. 参数…...
[官方IP] Shift RAM
Xilinx Shift RAM IP (PG122) 详细介绍 概述 Xilinx Shift RAM IP 是 AMD Xilinx 提供的一个 LogiCORE™ IP 核,用于在 FPGA 中实现高效的移位寄存器(Shift Register)。该 IP 核利用 FPGA 的分布式 RAM(Distributed RAM…...
Trae国际版+BrowserTools MCP yyds!!!
这是为您的博客优化的版本,结构更清晰、痛点更突出,并增加了技术细节和用户价值: 📢《告别手动抓狂!Trae国际版BrowserTools MCP 实现前端错误调试自动化》🚀 作为前端开发者,你是否经历过这些…...
Kdenlive 中的变形、畸变、透视相关功能
Kdenlive 中的变形、畸变、透视相关功能 flyfish Kdenlive 是一款开源、跨平台的非线性视频编辑软件,支持 Windows、macOS 和 Linux 系统. 滚动 通常指让画面内容(如字幕、图像)沿特定方向(垂直或水平)滚动显示。 用于…...
蓝桥杯 8. 移动距离
移动距离 原题目链接 题目描述 X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。楼房的编号为 1, 2, 3, ⋯⋯。 当排满一行时,从下一行相邻的楼往反方向排号。 例如,当小区排号宽度为 6 时,排列如下: 1 2 …...
2025.04.26-美团春招笔试题-第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 树上路径权值递增 问题描述 LYA正在开发一款基于树的图形渲染引擎,她需要实现一种特殊的路径增强效果。在这个效果中,她需要沿着树上的简单路径为节点赋予递增的权值增益。 …...
c++_csp-j算法 (5)
动态规划 介绍 动态规划(Dynamic Programming)是一种常用的解决优化问题的算法设计技术,常用于解决具有重叠子问题和最优子结构性质的问题。动态规划算法通过将问题划分为子问题,解决子问题并将子问题的解保存起来,最终构建出原问题的解。在本节中,我们将详细介绍动态规…...
力扣2444. 统计定界子数组的数目:Java三种解法详解
力扣2444. 统计定界子数组的数目:Java三种解法详解 题目描述 给定整数数组 nums 和两个整数 minK 和 maxK,统计满足以下条件的子数组数目: 子数组的最小值等于 minK;子数组的最大值等于 maxK。 示例: 输入…...
安全生产知识竞赛宣传口号160句
1. 安全生产是责任,每个人都有责任 2. 安全生产是保障,让我们远离危险 3. 安全生产是团结,共同守护每一天 4. 注重安全,守护明天 5. 安全生产无小事,关乎千家万户 6. 安全第一,人人有责 7. 安全生产无差别&…...
【Hive入门】Hive动态分区与静态分区:使用场景与性能对比完全指南
目录 1 Hive分区技术概述 2 静态分区详解 2.1 静态分区工作原理 2.2 使用场景 2.3 示例 3 动态分区深度解析 3.1 动态分区执行流程 3.2 使用场景 3.3 示例 4 使用场景对比 4.1 场景选择 5 性能对比与优化 5.1 插入性能 5.2 查询性能 5.3 小文件问题 6 最佳实践 6.1 混合分区策略…...
6.1腾讯技术岗2025面试趋势前瞻:大模型、云原生与安全隐私新动向
2025年腾讯技术岗面试趋势前瞻:大模型、云原生与安全隐私新动向 随着AI技术与云计算的深度融合,腾讯校招技术岗面试正呈现出三大核心趋势:AI大模型应用深化、云原生技术迭代加速、安全隐私技术刚需化。本文结合腾讯2025年最新技术布局&#…...
探秘卷积神经网络:深度学习的图像识别利器
在深度学习领域,卷积神经网络(Convolutional Neural Networks,CNN)是图像识别任务的关键技术。它的起源可以追溯到 20 世纪 80 - 90 年代,但受限于当时的软硬件条件,其发展一度停滞。随着深度学习理论的不断…...
x修改ssh版本号9.9可以躲过漏洞扫描器扫描
1. 查看当前系统的ssh版本号 ssh -V sshd -V 2. 查看ssh和sshd的位置 which ssh which sshd3. 查看ssh版本号有关的字符串 strings /usr/bin/ssh | grep OpenSSH strings /usr/sbin/sshd | grep OpenSSH4. 备份 cp /usr/bin/ssh /usr/bin/ssh.bak cp /usr/sbin/s…...
django之账号管理功能
账号管理功能 目录 1.账号管理页面 2.新增账号 3.修改账号 4.账号重置密码 5.删除账号功能 6.所有代码展示集合 7.运行结果 这一片文章, 我们需要新增账号管理功能, 今天我们写到的代码, 基本上都是用到以前所过的知识, 不过也有需要注意的细节。 一、账号管理界面 …...
Java24 抗量子加密:后量子时代的安全基石
一、量子计算威胁与 Java 的应对 随着量子计算机的快速发展,传统加密算法面临前所未有的挑战。Shor 算法可在多项式时间内破解 RSA、ECC 等公钥加密体系,而 Grover 算法能将对称加密的暴力破解效率提升至平方根级别。据 NIST 预测,具备实用价…...
ssm乡村合作社商贸网站设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
摘要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统乡村合作社商贸管理采取了人工的管理方法,但这种…...
多线程(1)——认识线程
目录 概念线程是什么为什么要有线程进程和线程的区别Java的线程 和 操作系统线程 的关系 创建线程方法1:继承Thread 类run和start方法 方法2:实现Runnable 接口方法1和方法2的区别 方法3:通过匿名内部类继承Thread方法4:通过匿名内…...
CSS3布局方式介绍
CSS3布局方式介绍 CSS3布局(Layout)系统是现代网页设计中用于构建页面结构和控制元素排列的一组强大工具。CSS3提供了多种布局方式,每种方式都有其适用场景,其中最常用的是Flexbox和CSS Grid。 先看传统上几种布局方式ÿ…...
4.换行和续写
一.FileOutputStream写出数据的两个小问题: 问题一:换行 假设在本地文件中要输出数据aweihaoshuai 666,在输出这个数据时要换行写出,如下图: 问题二:续写 假设在一个文本文件中已经存在数据aweihaoshuai…...
【数据结构与算法】从完全二叉树到堆再到优先队列
完全二叉树 CBT 设二叉树的深度为 h , 若非最底层的其他各层的节点数都达到最大个数 , 最底层 h 的所有节点都连续集中在左侧的二叉树叫做 完全二叉树 . 特点 对任意节点 , 其右分支下的叶子节点的最底层为 L , 则其左分支下的叶子节点的最低层一定是 L 或 L 1 .完全二叉树…...
冯·诺依曼与哈佛架构CPU的时序对比
以下是哈佛架构与冯诺依曼架构的时序对比及具体芯片实现案例的详细解析: 一、时序波形对比 1. 冯诺依曼架构时序 典型操作流程(读取指令后读取数据) 时钟周期 | 操作步骤 ---------------------------------------- T1 | 地址总线发送指令地址 T2 | 存储器通过…...
【漫话机器学习系列】225.张量(Tensors)
深度学习中的张量(Tensor)到底是什么?一文彻底讲清楚! 在机器学习和深度学习领域,无论是使用 TensorFlow、PyTorch 还是其他框架,我们都会频繁遇到一个术语:张量(Tensor)…...
前端开发中列表无限加载功能的实现与优化
在如今的 Web 应用开发中,为了给用户提供更加流畅、高效的体验,许多应用都会采用列表无限加载的技术,比如常见的社交媒体动态列表、电商商品列表等。 下面,我将结合实际项目,详细介绍列表无限加载功能的实现过程。 一…...
搜广推校招面经八十二
一、L1 和 L2 正则化的区别?对数据分布有什么要求,它们都能防止过拟合吗? 1.1. L1 与 L2 正则化的区别 特性L1 正则化(Lasso)L2 正则化(Ridge)正则项λ * ∑|wᵢ| λ ∗ ∑ ( w i 2 ) λ * ∑…...
机器学习——朴素贝叶斯法运用
一、朴素贝叶斯法 1.1 基本概念 朴素贝叶斯法是一种基于贝叶斯定理的简单概率分类方法,它假设特征之间相互独立。它适用于分类问题,尤其是在文本分类中表现良好。其核心思想是通过考虑各个特征的概率来预测分类(即对于给出的待分类样本&am…...
内存池管理项目——面试题总结
一.项目描述 项⽬概述:本项⽬通过实现⾸次拟合法和伙伴系统算法,完成对内存池的管理,旨在为程序提供⾼效、合理的内存分配与回收机制,优化内存使⽤效 率。 主要内容及技术: ⾸次拟合法实现:定义WORD结构体…...
基于Python+Neo4j实现新冠信息挖掘系统
软件说明书 一、引言 便携本使用说明的目的是充分叙述本软件所能实现的功能及运行环境,以便使用者了解本软件的使用范围和使用方法,并为软件的维护和更新提供必要的信息。 二、软件概述 2.1软件简介 新型冠状病毒肺炎肆虐全球,给人们的健…...
深入浅出理解并应用自然语言处理(NLP)中的 Transformer 模型
1 引言 随着信息技术的飞速发展,自然语言处理(Natural Language Processing, NLP)作为人工智能领域的一个重要分支,已经取得了长足的进步。从早期基于规则的方法到如今的深度学习技术,NLP 正在以前所未有的速度改变着我…...
AEB法规升级后的市场预测与分析:技术迭代、政策驱动与产业变革
文章目录 一、政策驱动:全球法规升级倒逼市场扩容二、技术迭代:从“基础防护”到“场景全覆盖”三、市场格局:竞争加剧与生态重构四、挑战与未来展望五、投资建议结语 近年来,全球汽车安全法规的加速升级正深刻重塑AEB(…...
《代码之美:静态分析工具与 CI 集成详解》
《代码之美:静态分析工具与 CI 集成详解》 引言 在现代软件开发的快节奏环境中,代码质量和效率始终是开发者关注的核心。无论您是初学者,还是经验丰富的资深开发者,一个强大的工具链都能让您如虎添翼。而 Python 的静态代码分析工具,如 pylint、flake8 和 mypy,正是提升…...
Adobe Photoshop(PS)2022 版安装与下载教程
Adobe Photoshop下载安装和使用教程 Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑和创造工作,…...
Universal Value Function Approximators 论文阅读(强化学习,迁移?)
前言 Universal Value Function Approximators 个人实现(请大佬指正) *关于UVFA如何迁移的问题,这也是我为什么反复看这篇文章的原因,我觉值函数逼近的最大用法就是如何迁移,如果仅仅是更改值函数的结构,…...
论文阅读:2024 arxiv HybridFlow: A Flexible and Efficient RLHF Framework
https://www.doubao.com/chat/3875396379023618 HybridFlow: A Flexible and Efficient RLHF Framework https://arxiv.org/pdf/2409.19256 https://github.com/volcengine/verl 速览 这篇论文主要介绍了一个名为HybridFlow的新型框架,旨在提升大语言模型&…...
WPF实现多语言切换
WPF实现多语言切换完整指南 一、基础实现方案 1. 资源文件准备 首先创建不同语言的资源文件: Resources/ ├── Strings.resx // 默认语言(英语) ├── Strings.zh-CN.resx // 简体中文 └── Strings.ja-JP.resx // 日语 Strings.resx (默认英…...
wpf操作主流数据
WPF 操作主流数据库详解 WPF(Windows Presentation Foundation)应用程序经常需要与数据库交互以实现数据的持久化和展示。主流的关系型数据库包括 SQL Server、MySQL、PostgreSQL 和 SQLite。本文将详细介绍如何在 WPF 应用程序中使用这些主…...
Docker Compose--在Ubuntu中安装Docker compose
原文网址:Docker Compose--在Ubuntu中安装Docker compose_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍如何在Ubuntu中安装docker compose。 docker-compose是用于管理Docker的,相对于单纯使用Docker更方便、更强大。 如果还没安装docker…...
推荐几个免费提取音视频文案的工具(SRT格式、通义千问、飞书妙记、VideoCaptioner、AsrTools)
文章目录 1. 前言2. SRT格式2.1 SRT 格式的特点2.2 SRT 文件的组成2.3 SRT 文件示例 3. 通义千问3.1 官网3.2 上传音视频文件3.3 导出文案 4. 飞书妙记4.1 官网4.2 上传音视频文件4.3 导出文案4.4 缺点 5. VideoCaptioner5.1 GitHub地址5.2 下载5.2.1 通过GitHub下载5.2.2 通过…...
驱动汽车供应链数字化转型的标杆解决方案:全星研发项目管理APQP软件系统:
全星研发项目管理APQP软件系统:驱动汽车供应链数字化转型的标杆解决方案 一、行业痛点与转型迫切性 在汽车行业电动化、智能化浪潮下,主机厂对供应链企业的APQP(先期产品质量策划)合规性、开发效率及体系化管理能力提出严苛要求。…...
PyTorch数据加载与预处理
数据加载与预处理详解 1. 数据集类(Dataset和DataLoader) 1.1 Dataset基类 PyTorch中的Dataset是一个抽象类,所有自定义的数据集都应该继承这个类,并实现以下两个方法: __len__(): 返回数据集的大小__getitem__(): 根据索引返回一个样本 …...
MyBatis 官方子项目详细说明及表格总结
MyBatis 官方子项目详细说明及表格总结 1. 核心子项目说明 1.1 mybatis-3 GitHub 链接:https://github.com/mybatis/mybatis-3功能: MyBatis 核心框架的源码,提供 SQL 映射、动态 SQL、缓存、事务管理等核心功能。主要功能: 支持…...
Java学习手册:常用的内置工具类包
以下是常用 Java 内置工具包。 • 日期时间处理工具包 • java.time包(JSR 310):这是 Java 8 引入的一套全新的日期时间 API,旨在替代陈旧的java.util.Date和java.util.Calendar类。其中的LocalDate用于表示不带时区的日期&…...
启动你的RocketMQ之旅(六)-Broker详细——主从复制
前言: 👏作者简介:我是笑霸final。 📝个人主页: 笑霸final的主页2 📕系列专栏:java专栏 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一…...
QT跨平台软件开发要点
一、Qt跨平台开发核心优势 1.统一代码基 通过Qt的抽象层(Qt Platform Abstraction, QPA),同一套代码可编译部署到Windows、macOS、Linux、嵌入式系统(如ARM设备)甚至移动端(通过Qt for Android/iOS&#…...
【C语言】柔性数组
目录 一柔性数组的定义与特点 定义: 特点: 注意事项 二柔性数组的使用方法 三示例代码详解 四与其他知识的结合 五总结 前言: 柔性数组是C99标准引入的一种特殊结构体成员类型,允许在结构体的末尾定义一个长度未知的数组…...
AWS中国区ICP备案全攻略:流程、注意事项与最佳实践
导语 在中国大陆地区开展互联网业务时,所有通过域名提供服务的网站和应用必须完成ICP备案(互联网内容提供商备案)。对于选择使用AWS中国区(北京/宁夏区域)资源的用户,备案流程因云服务商的特殊运营模式而有所不同。本文将详细解析AWS中国区备案的核心规则、操作步骤及避坑…...
基于Matlab的MDF文件导入与处理研究
摘要 本文围绕MDF文件格式展开全面研究,系统阐述了MDF文件的基本结构与数据块概念,深入探讨了在Matlab环境下导入和处理这些文件的理论与实践方法。首先,介绍了MDF文件在现代工业和汽车电子领域的应用背景及重要意义。接着,详细剖析了MDF文件的结构,包括头部信息、数据块、…...
架构师备考-设计模式23种及其记忆特点
引言 以下是一篇关于架构师备考中设计模式23种的博文架构及记忆技巧总结,内容清晰、结构系统,适合快速掌握核心知识点。 考试类型是给语句描述或者类图,判断是哪一种设计模式(会出现英文的名词),2024年的两…...
学习记录:DAY18
前端实战与项目部署学习笔记 前言 时间固执沉默无情的流逝, 小心握紧漠然通达的当下。 今天要把前端实战部分学完,有时间写写学科作业 ----4.26---- 放纵注定是场与自我无休止的拉扯,过度的妥协只会跌入自我空虚的深渊 真该死啊,…...
【OSG学习笔记】Day 10: 字体与文字渲染(osgText)
osgText库简介 osgText 是OpenSceneGraph(OSG)中用于文本渲染的重要模块,支持在3D场景中添加静态/动态文字、自定义字体、文字样式(颜色、大小、对齐方式等)以及动态更新文本内容。通过结合OSG的场景图机制࿰…...
[特殊字符] 深入理解Spring Cloud与微服务架构:全流程详解(含中间件分类与实战经验)
📚 目录 Spring Cloud 简介与发展 Spring Cloud 与 Spring Cloud Alibaba 的关系 为什么需要微服务?单体架构 vs 微服务对比 微服务常用中间件汇总 微服务如何科学拆分? 一个微服务对应一个数据库(服务自治原则) …...