自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 收藏
  • 关注

原创 设计模式----工厂模式

工厂模式有三种:1、简单工厂模式2、工厂模式3、抽象工厂模式。

2026-04-26 13:41:30 136

原创 数据库基础知识----数据库大观

一个是外模式和逻辑模式之间的映像,当逻辑模式改变时,对该映像的逻辑模式与逻辑模式对接的方向做出一定的修改,就可以保证映射的正常,从而不必修改外模式和应用程序。人工阶段不共享,因为数据都存在“一个本子”里,同一时刻,只能有一个人在操作(查阅或者修改等等)本子的数据,其他想查阅的只能排队等待。逻辑模式其实就逻辑模型;他们一个实现了逻辑数据的独立性,一个实现了物理数据的独立性,但是这两个都属于**“数据独立性”**最后,就是最直观的,由:无法持久化数据–>可以持久化数据–>可以持久化数据,并有一个系统进行管理。

2026-04-03 14:36:26 382

原创 web后端----oatpp临时笔记

1、关于wrapperWrapper翻译:包装器1、首先定义了一个StringJsonVO类,2、之后,从2可知,StringJsonVO::createShared()会返回一个智能指针,类型为StringJsonVO类,(这是框架自带的方法)所以,StringJsonVO::Wrapper就是std::shared_ptr即,xxx::Wrapper就是std::shared_ptr或者std::unique_ptr。

2026-03-22 14:20:31 139

原创 web后端----后端框架基本架构、基本流程

1、首先创建了一个Express实例2、之后指定开放的端口号3、相当于在注册路由4、启动服务器,并在后端控制台打印http://localhost:{port},这个是本地web后端服务的根 URL我们要为上面的每一个需求,设计一个API接口相当于接口文档,前后端都要看,都要遵循。

2026-03-19 21:40:14 460

原创 网络基础知识----路由器私网IP与公网IP(NAT)

WIFI与LAN口是平级的,他们都是在局域网子网中的连接方式,只不过一个是无线,一个是有线。

2026-03-19 16:00:42 501

原创 web后端----HTTP协议与浏览器F12

即上图第一行,包括http协议版本号,然后是状态码,状态码后面是对状态码的描述,即对状态码的解释。然后做下一步处理即可,如,先前会根据get/post+URL注册路由,即注册业务处理函数到这个请求路径上,此时根据收到的get/post+URL进行路由分发,分发到之前注册的函数进行处理,同时传入请求体的数据,等等。其中:第4行(必须有),表示这次要发送的数据是什么格式类型的,如(文本类型、img、png类型、mp3类型、mp4类型等等),以及该文件的编码格式(更多见下面《常见网络文件类型》)

2026-03-19 15:55:27 467

原创 JsonCpp的编译与使用

注意上面的序列化:C++对象–>JSON字符串反序列化:JSON字符串–>C++对象这个类是一个包装器,可以封装JsonCpp支持的所有类型前六行就是那些常用的数据类型第七行,是一个数组类型,对应json字符串中的[],该数组类型所存放的元素可以不同类型第八行,是一个对象类,对应json字符串中的{},他可以存放上面所有类型的key:value,其中,key必须是标准型字符串类型:string或者C语言字符串char str[],value可以是上面的。

2026-03-16 14:58:25 414

原创 mysql(C++)----管理系统(Win平台)

有的mysql版本,还需要配置boost库。填入上图两个文件的全名(含.lib后缀)将上图路径,填入上面的“附加包含目录”将上图路径,填入上面的“附加库目录”下载好boost库之后,来到这个位置。1、debug改为release。将该路径添加到“附加包含目录”2、右击项目,选择“属性”4、添加“库的头文件目录”添加到“附加库目录”

2026-03-14 21:59:28 92

原创 mysql(C++)----常用的sql命令

1、如果是使用md文档写sql语句,可以在语句上下两行加上。2、sql语句不能用tab。这样md会自动适配sql语句语法。2、写插入的这条记录的“字段值”3、写插入的这条记录的“值”1、定义的表中的字段名。3、表示该字段会自增。

2026-03-13 21:30:20 95

原创 mysql(C++)----基础操作、基本概念、常用类型

mysql的命令行操作,实操过程中有些可以用Navicat客户端代替。

2026-03-13 21:02:52 73

原创 备战北邮机试--错题本

后改用对1~m枚举,但是m最大10e9,且外面还有一个while循环,所以肯定会超出。PS:时间复杂度传入数据量后,要保证在10e8以内,C++的10e8是1s。注释部分,是使用n方,但是n最大值是10e5,所以,超出10e8。但此时只枚举了一半,所以要判断是否i == j,以及i!int的最大范围:10e9。

2026-02-02 16:57:11 73

原创 操做系统----第二章:多进程图像之CPU管理

3、简要看一下多道程序执行的过程:首先从B开始,遇到B要IO(DEV代表IO),则让B执行IO,同时CPU切换到A执行,之后,A要进行IO,则让A继续IO,CPU切换到B执行,而这里,CPU执行B时,A的IO结束了,但是B的CPU还能继续执行,那么A只好等待,等B什么时候遇到IO释放了CPU,A再继续使用CPU。4、二者作比:可以看到,大致为10^6:1,也就是CPU执行一条IO操作代码的时间,大致是执行一条计算指令代码的10的6次方倍,所以,执行IO的速度相比CPU执行的速度来讲,十分十分的慢。

2025-04-14 23:32:10 847

原创 操作系统----第一章:操作系统的启动、接口、系统调用

1、简要解释了一下system模块为什么要用call2、转入setup执行,因为boot已经将setup模块和system模块的代码载入到了内存(即从磁盘读出,放入内存了)之后,修改CS:IP的值,CS=0x9020,IP=0x0000,所有,会转入setup模块在内存中的首地址0x90200处开始执行。

2025-03-25 22:51:00 1080

原创 计算机组成原理--第五章:中央处理器

1、首先包含一个算术逻辑运算单元(ALU),负责进行算术运算或者逻辑运算2、之后,运算器里面还有许多的“通用寄存器组”,对于一般的CPU而言,我们可以使用R0、R1、R2、R3来表示,同样,对于x86CPU来说,其使用AX、BX、CX、DX来表示,且有一个SP,但是其本质与R0~4是一样的对于指令寄存器:1、其不是整个向总线进行输出,而是分为两部分,其中,存放的指令的“地址码”部分,是会向总线输出的。

2025-01-02 22:46:38 1496

原创 计算机组成原理--第四章:指令系统

注意,不同的架构设计的芯片,支持的指令集不同,所以,在x86架构上的软件,在ARM架构下是无法直接运行的扩展操作码也是一种指令格式,首先我们知道,一条指令,由“操作码” + “操作数”(或者叫“地址码”)组成而这种格式就是,1、指令的总长度不变2、操作码的长度可以变3、优点是,可以根据“地址数”,也就是地址码的数量,来使用不同长度的操作码。

2025-01-02 16:31:51 2106

原创 web后端----接口文档

接口文档,是对一个接口的功能、参数、返回值、调用凡是等进行详细描述的文档路由器可以有多个IP地址,这取决于其配置和网络结构。WIFI与LAN口是平级的,他们都是在局域网子网中的连接方式,只不过一个是无线,一个是有线。

2024-11-13 00:49:26 1689

原创 计算机组成原理--第三章:存储系统

1、首先,第一点,可以看到一个金字塔,他越向上的部件,速度越快,造价越高,容量越小2、当我们启动一个应用的时候,一般应用的数据、启动程序都在辅存(硬盘)中,而启动一个程序需要CPU去运行其启动程序、数据等,而CPU不能直接访问辅存,所以,一般辅存会将数据给到主存(内存),然后内存再给到CPU(我们开启微信时,刚开始的一个地球的画面,就是等待数据从辅存调入主存)在主存与CPU之间,多出了一个cache,称为高速缓冲存储器。

2024-11-09 17:47:24 1842

原创 C++98、C++11新特性补充

上述包含一个头文件memory,这是智能指针的头文件,之后使用using namespace std,可以看到,在main函数中可以直接使用其模版创建一个智能指针,这个时候对于命名空间的范围可能还没有感觉接下来,我们将using namespace去除,而是使用std进行指定:可以看到,不管是iostream中的cout、endl还是memory中的智能指针。

2024-10-20 18:29:58 1398 1

原创 计算机组成原理--一章二章

ALU的输入有两个数,每个数都是使用一个机器字长的位数来表示数据的,比如上图中A和B都是4位bit,最终计算得到的结果也是4位ALU中会接入CU的控制,其中,M为1时表示逻辑运算,M为0时表示算术运算而S有四个bit,所以可以表示2的四次方种功能,所以,可以控制实现算术运算和逻辑运算各16种运算。

2024-10-17 00:22:46 1103

原创 系统编程--线程同步

使用两个线程,同时向“公共输出”(共享区)写数据,没有加锁机制打印完全随机,各个线程的一帧数据写入都会被其他线程打断、插入其他数据。

2024-09-13 12:39:07 1109

原创 系统编程--线程

对于一个进程来说,他有独立的进程地址空间,如上图左侧0~4G的进程地址空间,且他有一个PCB进程控制块而当该进程调用pthread_create()创建线程时,这个线程不会再有新的0~4G的进程地址空间,而是使用当前进程的地址空间,但是该线程会创建出一个自己的PCB控制块而一旦一个进程创建出一个线程,该进程也叫做线程了,就相当于从一开始的整租->合租,虽然你是第一个租的,但由于有别人一起来租,你们俩就都叫合租。

2024-09-08 17:28:26 1277

原创 系统编程--信号

注意:所有信号的产生及其处理都是内核完成,所以,后续我们做的任何有关信号的代码操作,都不是我们直接去创建一个信号,或者操作一个信号,而是驱使内核去创建、操作信号。

2024-09-04 23:01:27 492

原创 系统编程--进程间通信

父子进程,对于0到3G的区域,是用户段,映射到内存中是各自独立的而3G到4G的区域,是内核段,映射到内存中是同一块内存地址空间,而既然是在同一块内存地址空间下,就说明二者可以进行通信,进行数据交流、共享而进程间通信,简称IPC管道只能作用于有血缘关系的进程之间,我们可以使用pipe这个函数来创建一个管道,或者在命令行使用命令:mkfifo f1但是其本质上是一个伪文件,不是真正存在磁盘空间中的文件,他实际上是一个内核缓冲区。

2024-09-01 18:20:51 638

原创 模型训练套路+GPU训练

输出经过模型处理过后的输出,打印其shape,可以看到最后的shape是[64, 10],64表示抓取数,一般是不变的,10表示最后的尺寸,发现符合我们的预期,验证完成(main函数可以保留至此,无需注释)可以看到,先进行一个with语句,该语句的作用是不进行梯度的设置,如果没有梯度,那么就不会进行调参的动作,也就不会改变当前轮训练完之后的模型,,这里就是从100、200、300…同时,可以设置训练模式时,训练每100次,进行一次损失函数损失值的打印,防止测试集的输出淹没在训练时的损失函数输出中。

2024-08-20 00:18:09 874

原创 神经网络搭建与训练实战

图中少化了一个input,实际上,将数据处理完之后,展开成一维的结果,就是一个线性处理中的输入层,大小是64 * 4 * 4之后进行一次线性层的处理,数据量变成了64再经过一次线性层的处理,数据量变成了10(因为模型最后要从十个类别中预测一个,最后的数据可以是对应类别的对应概率)后续我们拿到最终的10数据之后,就可以做一些逻辑处理,比如,如果最后的数据是对应类别的对应概率,那么我们取最大的即可。

2024-08-10 18:31:21 637

原创 Pytorch训练神经网络-入门

这是一个python库的集合,在python中,库也叫做包,而anaconda中包含了大部分我们训练模型所需要的包可以使用miniconda+pip 代替anaconda。

2024-08-02 00:10:40 534

原创 系统编程--进程

但是对于早先的单核CPU处理器,虽然在我们人类的感官上,CPU确实是在并发,但是实际上CPU是在轮流的执行他们,也就是说,在任何一个时刻,只有一个进程在运行,之所以感觉不到,是因为CPU的处理速度远在人类的感知范围之上。多道程序设计,是基于单核CPU的前提下解释的,也就是在CPU穿插运行多个进程,其中,时钟中断,是指CPU强制执行的,满足时钟中断则进行进程的切换。给到CPU,CPU一顿计算之后,将结果返回到存储介质的寄存器,之后返回到缓冲区,又给到内存的进程,此时屏幕可以获取到结果,进行展示。

2024-07-23 23:56:04 552

原创 系统编程--目录操作与重定向

首先明确:目录也是一个文件其文件内容就是所有子文件的目录项(dentry),使用vim打开一个目录,也是显示其子文件的目录项而其三个权限与文件的区别见上图实现一个ls -R,也就是显示当前子文件的同时,如果子文件是一个目录,那么将其目录内的子文件也显示出来,依次类推,有目录就向内显示。

2024-07-21 23:34:16 1230

原创 系统编程--Linux下文件的“其他操作”函数

因为lstat与stat没有其他区别,而且lstat不会进行穿透,所以,以后我们直接使用lstat就可以了建立硬链接,也就是新建dentry项,而使用mv命令修改文件名时,也是修改了dentry,并不对真正的文件做操作。

2024-07-20 18:52:11 1010

原创 机器学习方向--总览

神经网络是参考生物中的神经元进行设计的,有若干个输入和一个输出假设我们有五个神经元,即有五个MP模型,将其分成两组,将第一组的输出连到第二组的输入,就构成了神经网络,神经网络的关键就在于将神经元以层级的方式链接起来两层的神经网络还有一个别称:感知机。

2024-07-17 22:03:38 244

原创 网络编程--网络理论基础(二)

路由器分为LAN口和WAN口,LAN口用来接各种家庭中的设备,而WAN口用来接运营商提供的互联网,从而连接到互联网中如果没有WAN口,那么路由器就是一台交换机,也是一个子网而WAN口,实际上是另一台交换机,只不过这台交换机是全球通信的巨大的一张网,称为互联网,是另一个子网而路由器就是网关,负责两个子网之间的通信的桥梁。

2024-06-17 17:27:45 1058

原创 TCL编程

set 变量名 值其中,值可以是常量,如上图的12,也可以是从变量中拿到的值,如上图中的$a注意,如果变量名不是由字母数字和下划线组成的,那么在$时,要将变量名加上花括号[]是计算表达式的值,语法:[expr 1+2]在中括号里进行表达式运算,且表达式之前要加expr补充:如果使用[glob *v]本意是想拿到所有以v结尾的文件,但是虽然他确实返回结果是a.v b.v c.v,但是他将这三个.v合并成了一个变量进行返回,当前目录并没有名为“a.v b.v c.v”的单个文件,所以,这里想要返回三个

2024-06-05 11:15:31 920

原创 shell编程

shell是我们的linux所使用的命令行解释器,他负责程序员与Linux内核的沟通,所以可以认为shell是一个程序员与linux内核沟通的编程语言我们将命令交给shell,shell将我们的命令翻译为机器语言,交给内核,去调动内核我们还可以将多个shell命令写成在一起,存入一个文件,该文件就叫做脚本从2)可以看到,sh是当前系统的默认解释器,他默认链接到了bash上,说明centos默认的shell解析器是bash需要注意的:1、=前后不可有空格。

2024-05-26 18:14:06 861

原创 系统编程--“文件IO”函数

系统调用,就是一些操作系统所提供的函数API,通过键入man man,可以查看man手册的简介,可以看到,man手册的第二卷,都是系统调用的函数原型,即内核提供的函数。

2024-05-18 11:17:13 851

原创 B/S模式的web通信(高并发服务器)

之后,因为http协议中,对于从浏览器发送而来的文件的位置,是以启动配置的第三个参数为参考根目录的相对路径,服务器要设法拿到服务器对应的路径,而拼接路径又过于繁琐,所以,使用chdir函数,该函数可以让服务端的工作目录跳转到某个目录下(实际上就是与cd的作用一样),所以,chdir(argv[2]),就是将服务器跳转到第三个参数所指明的目录内,这样,从http协议封装出来的数据包拿到的数据,可以直接拿到当前服务器使用,因为服务器的工作目录已经跳转到第三个参数的目录了。如果是cfd,那么进行数据的读取。

2024-05-09 17:21:32 1058

原创 Gradio之blocks灵活搭建页面

(在诸多水平布局之间,混入了几个没有写任何布局的组件,那是因为该行就那一个组件,所以,在只有一个组件,且目前在垂直布局的大引导下,也就无需再写一个水平布局了,但是还是建议写上,便于代码的阅读和维护)所以,我们在这里调整其最小宽度,只要保证最小宽度比我们想要设置的宽度小就可以了,我们调为1,就已经是最小的宽度了,基本上调为1之后,不会限制任何比例对宽度的下调了。可以看到,最后的效果,有一点小bug,因为那一行六个按钮,本来是写在一个row内的,也就是本就是一行,现在怎么会变成两行,

2024-05-07 16:57:25 2195

原创 CMake

首先,我们知道,一个源文件生成可执行文件的步骤为:1、预处理,将源文件中的宏、头文件等展开,将注释删去2、进行编译,将源文件进行编译。3、进行汇编,汇编完成之后,就会根据源文件生成二进制文件,win平台下以“.obj”为后缀,而linux平台下以“.o”为后缀4、链接,将.obj或者.o文件进行链接,最终生成可执行文件,win平台下为.exe,linux平台下为.out文件CMake就是一个项目构建的工具,项目编译构建的工具。

2024-04-22 16:10:34 1192

原创 GCC、gcc、g++辨析

GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)由于编译器是可以更换的,所以gcc不仅仅可以编译C文件所以,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler。

2024-04-22 14:56:04 397

原创 算法刷题应用知识补充---数论

这里的应用是,将a,m,x,y带入exgcd,得到函数的返回值是gcd(a, m),且x和y会引用返回,其中,x就是我们要找的值的初态,我们还要对其处理。这里要判断,是否真正要得到的余数b是gcd(a,m)的倍数,如果不是,那么无解,如果是,则结果是x乘上倍数,即x * (b / d),这就是我们要找的x。知识点2:a在mod p时的逆元,等于 qmi(a, p - 2, p),即a * qmi(a,p - 2, p) = 1 (mod p)知识点3:要判断是否有解,若a%p!=0,则有解,否则,无解。

2024-04-10 16:09:50 478

原创 算法刷题应用知识补充--搜索与图

这里写目录标题DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录

2024-04-07 20:49:07 316

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除