自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

duanku111的博客

你好呀,我是一条短裤

  • 博客(72)
  • 收藏
  • 关注

原创 天呐!deepseek居然根据文章猜出了我的MBTi

笔者的MBTi的确是INTJ,他们的分析让我不禁咤舌。

2025-03-03 22:43:30 791

原创 Linux进程状态

阻塞期间,进程不会被调度,但对应进程的PCB和代码以及数据也是会占用内存的,若进程越来越多,则计算机的内存资源迟早不够用,那么,此时,操作系统为了保证整个系统的安全,就会将进程的代码和数据换出到磁盘中;对于每个CPU,操作系统都要给它提供一个叫做运行队列的东西(FIFO),每次执行一个进程,就是把这个进程的task_struct链入运行队列中,CPU在处理进程时,就只需要到运行队列去取头节点即可。此时这个进程就会被设置为。而这个退出码的信息,规定了这个进程退出的状态,就譬如0为正常退出,非0为异常退出。

2025-03-03 22:03:13 963

原创 Linux进程初步(概念篇)

在前面的文章中,我们已经知道了一点:管理是先描述再组织。对于进程而言,也是如此的。操作系统需要先描述进程,之后再进行组织。

2025-02-27 19:22:36 610

原创 冯诺依曼体系结构和操作系统

至此,我们就了解了操作系统的地位。

2025-02-25 23:17:07 619

原创 Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)

PHONY是Makefile文件中的关键字,用于声明某个目标为伪目标。伪目标不对应实际文件,无论文件是否修改,相关命令每次都会执行。

2025-02-21 17:55:03 1334 1

原创 Shell的运行原理&&Linux权限管理

在谈Shell的运行原理之前,我们先说一下Windows操作系统。Windows操作系统是鼠标+键盘一起操作的,用鼠标在可视化界面上点点点,然后用键盘输入就可以完成操作了。但,Linux却不一样,Linux是命令行界面,不是可视化界面,因此Linux系统并不需要鼠标就可以操作了。但,说到底,命令行界面和可视化界面也都是界面,他们本质上都是一样的,都是为了方便用户操作的东西。这个界面就被称为是“外壳程序”。可视化界面常用于家庭和个人使用;命令行界面常在企业中使用。

2025-02-17 20:33:34 1130

原创 Linux基础指令大全(三)

whoaim指令可以显示当前是哪个用户在使用。

2025-02-03 14:44:04 605

原创 Linux:指令大全(二)

在linux中,我们是没办法用鼠标进行翻页阅读的,如果我们想要阅读文件的话,则需要用到cat指令。cat指令只能用来查阅内容较少的文件,若是需要查阅内容较大的文件,则需要用到more指令。因此,我们就可以将前100行的数据通过管道传输,然后在右边的出口只读取tail 10即可。功能: 用于显示文件的末尾至标准输出中,默认tail指令打印的是相对应文件的末尾10行。把cat反过来写,就是tac,tac指令,可以用于反向查看目标文件的内容。管道,用“|”表示,用于传输一个东西,管道左边为入口,右边为出口。

2025-02-03 13:38:51 996

原创 Linux:指令大全(一)

-pdirname可以是一个路径名称,但是若路径中的某些目录不存在的话,加上此选项后,系统会自动创建好那些不存在的目录,即一次可以创建多个目录。功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。Linux的指令太多了,我们是记不住的,所以我们就需要一个字典来查阅指令的用法,那么我们就用到了man命。linux系统中,所有的文件和目录会被组成一个目录树,树的每一个节点都是文件或目录。rmdir是一个和mkdir相对应的指令,用于删除一个目录。

2025-01-18 16:29:18 726

原创 机器学习初识

一个函数,如输入音频,输出音频所对应的文字。无法通过人类的力量来完成这个函数,由机器来完成这个函数。帮助人类完成事情是通过一个函数来完成的,而这个函数是通过类神经网络来完成的。

2025-01-17 11:44:24 384

原创 机器学习和深度学习的概念

机器学习,可以看作是找一个函数。这个函数是人类找不到的,所以交给机器来找。

2025-01-17 11:43:10 1576

原创 C++STL详解(九)map和set的使用

在我们之前介绍二叉搜索树时,我们大家可以发现其的模板参数只用了一个T1,而我们的set的底层就是一种特殊的二叉树,我们可以将其理解为只有一个实值value的特殊模型。下图为cpp库中set的定义:参数1:T即是set的实值参数2:compare是中序遍历结果的排列,默认是升序参数3:空间配置器下面,我们来学习以下set的定义方式:方式1:构造一个空的容器方式2:拷贝构造方式3:迭代器区间构造方式4:构造空容器,并指定比较方式map。

2024-11-01 18:13:32 871

原创 一篇文章讲透数据结构之二叉搜索树

二叉搜索树(Binary Search Tree)是基于二叉树的一种升级版本,因为普通的二叉树没有实际应用的价值,无法进行插入、删除等操作,所以我们进行了升级,升级成了二叉搜索树。左节点比根节点小,右节点比根节点大。下面我们展示一下![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f53117d894b24058a8add35c30699293.png下面,我们通过中序遍历来看一看遍历结果:我们发现,我们构建出的树是有序的。那么,如果我们通过。

2024-10-28 22:42:18 1200

原创 C语言初识:函数的认识

我们说过,函数也可以通过自己定义的方式来创建,那么我们下面来介绍函数的定义语法:函数定义之前需要先声明,声明的作用是告诉编译器有这个函数存在。//函数声明返回类型 函数名(参数1,参数2,......);//函数定义返回类型 函数名(参数1,参数2,......)//函数体return a+b;在上面的这个例子中,我们定义了一个add函数,他接受的两个值是整型的,并返回了他们的和,因此,我们可以使用这个函数计算两数之和。

2024-10-26 20:14:23 961

原创 C语言初始:数据类型和变量

人有黄人白人黑人,那么数据呢?我们大家可以看出谁是黄种人,谁是白种人,谁是黑种人,这是因为他们是类似的。数据也是有类型的,就譬如整数类型,字符类型,浮点型类型。每种类型也都是能够抽象出共同特征的,编译器也是只有知道了数据的类型才能操作数据。我们在本文中将学习整数类型,字符类型,浮点型类型,布尔型。在C语言中,数据类型决定了变量在内存中存储的方式以及可以进行的操作。本文将简要介绍C语言中常见的数据类型,包括字符型、整型、浮点型和布尔类型,并在示例中详细解释其使用原因。

2024-10-13 16:09:31 897 1

原创 C语言入门:打开编程世界的大门

像‘a’,‘b’,‘c’,‘1’,‘#’ 等由单引号引起来的东东,我们称为字符。ps:重点是单引号,单引号里面只能引一个。

2024-10-12 16:27:14 910 1

原创 C++STL详解(八)priority_queue的运用与实现

优先级队列也是队列,符合队列先进先出的原则。但顾名思义,它是具有优先级的一种队列。也就是说,优先级高的元素会在前面,优先级低的元素会在后面。说到这里,大家应该能够联想到一种名为堆的数据结构。其实,优先级队列的底层就是用堆来实现的。泛型编程。堆的实现。

2024-10-10 09:23:27 1026

原创 oi!小鬼!准备好接受模板的力量了吗?

模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性3. 模板会导致代码膨胀问题,也会导致编译时间变长4. 出现模板编译错误时,错误信息非常凌乱,不易定位错误模板是一把双刃剑,用好了,它将会是一把锐利的武器,用的不好,它将成为压倒你的大山。

2024-10-08 23:48:00 742

原创 C++面向对象:继承!

/子类:继承方式父类//eg:classa:publicb代表了a以public的方式继承了b。在我们上述的例子中ps:继承符是可以省略的,省略继承符时使用class时,默认继承方式为public继承。使用struct时,默认继承方式为private继承。

2024-10-06 00:48:35 794

原创 多态对象的内存结构

这篇文章我们通过具体的案例来谈一谈多态的具体内存结构:class Base{public: virtual void Func1() { cout << "Func1()" << endl; } virtual void Func2() { cout << "Func2()" << endl; } void Func3() { cout << "Func3()" << endl; }privat

2024-09-22 21:23:21 344

原创 C++面向对象:多态!

实现多态需要借助虚表(虚表数表),构成虚表需要虚函数(virtual修饰的函数)。除此之外,我们还需要虚表指针定位函数,并调用。抽象类即有纯虚函数的类。那么,什么是纯虚函数呢?我们只需要在虚函数的函数头之后加一个=0,即可将虚函数变为纯虚函数。纯虚函数也可以与普通虚函数构成重写,也就是能够实现多态。但是,包含纯虚函数的类是不可以实例化对象的,这点我们后续会谈到。因此,只要类中含有纯虚函数,那么这个类就是一个抽象类。cout

2024-09-22 21:11:23 946 1

原创 C++STL详解(七)——Stack和Queue

第一个构造函数:使用默认的适配器定义栈第二个构造函数:使用特定的适配器定义栈如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。使用默认的适配器定义队列。使用特定的适配器定义队列。如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。

2024-08-17 17:33:48 944 12

原创 C++STL详解(六)——list类的具体实现

list的迭代器类,实际上只是对结点的指针进行了封装,并对其各个操作符进行了重载,使得结点指针的各种行为看起来和普通指针一样。

2024-08-14 23:39:14 941 1

原创 C++STL详解(四)——vector类的具体实现

在上篇文章中,我们已经学习了vector的具体接口使用方法,在本篇文章中,我们将学习实现一个vector容器。

2024-08-12 20:35:51 770

原创 C++STL详解(五)——list类的接口详解

list容器的底层是双向循环带头链表,在CPP中,我们对双向循环带头链表进行了一定程度的封装。双向链表在这里我们要学习六种list的构造方式。构造1:构造一个某类型容器构造2:构造一个含有一个值的某类型容器//构造只含有一个数值3的结点的list容器构造3:构造一个含有n个值的某类型容器//构造含有三个数值都是5的结点的list容器构造4:复制某个容器构造该容器的复制品//拷贝构造构造5:使用某个迭代器区间进行构造//迭代器区间初始化构造6:使用列表构造一个某类型容器//使用列表构造。

2024-07-25 23:48:50 1063 12

原创 C++STL详解(三)——vector类的接口详解

vector容器的底层是顺序表,在CPP中,我们对顺序表进行了一定程度的封装。顺序表。

2024-07-24 23:47:05 1164 52

原创 C++STL详解(一)——string类的接口详解(下)

在这里需要大家注意的是,capacity表示开辟的空间大小,而size求出的是开辟的空间内的元素个数。在用>>进行输入操作时,当>>读取到空格便会停止读取,基于此,我们将不能用>>将一串含有空格的字符串读入到string对象中。另外,值得一提的是,如果resize给出的值大于capacity的值的话,会调用扩容函数。但是,我们发现了一个问题,如果我们输入的字符串中有空格的话 则空格后的字符会进入缓冲区。string元素的访问有两种方式,我们可以通过重载的[]访问,也可以通过at函数访问。

2024-07-23 21:03:36 710 39

原创 C++STL详解(一)——String接口详解(上)!!!

string类是CPP中STL中处理字符串的一个类,它给我们提供了丰富的接口以供于我们使用。虽然我们传统的C库中有相关的函数以供于我们使用,但是由于操作起来比较麻烦,因此CPP中实现了string类。string类所在的头文件为

2024-07-23 16:42:58 477 22

原创 C++STL详解(二)——string类的模拟实现

首先,我们为了防止命名冲突,我们需要在自己的命名空间内实现string类。

2024-07-19 18:17:56 839 41

原创 CPP入门:日期类的构建

这里需要注意的是,由于这个函数运行结束之后,tmp会先被销毁掉,再进行返回,因此我们如果返回值为引用的话,则会出错。之后我们一直减去当月的天数,并让月份加1,如果月份为13,则年份加1,月份赋为1。在日期类中,我们应当是已知每个月份有多少天的,因此我们还需要在日期内中写一个成员函数来获得当月的天数。后置++是先使用后++的。此外,我们的日期类还应当能够实现对日期的打印、对日期类的相关计算、输入输出的重载等成员函数。与实现加等类似的是,这里我们也是类似的步骤,通过一个循环来不断的更新年月日。

2024-07-02 22:36:45 1208 48

原创 数据结构入门:探索数据结构第一步

数据结构是由“数据”和“结构”两词组合而来。什么是数据?常见的数值1、2、3、4......、学生管理系统中保存的学生信息(学号、年龄、年级等到)都是数据什么是结构?我们想要大量的使用某一个类型的数据时,需要手动定义大量的独立的变量对于程序来说,可读性非常差,因此我们会借助数组这样的数据结构将大量的数据组织在一起,结构就可以理解为组织数据的方式。打个比喻,如果我们把叫“裤衩”的羊放生到草原上,我们自然很难找到它;但,如果我们把这只羊放到羊圈里,我们就可以很轻松的找到它。对于我们在这个地方的学习而言,

2024-06-12 20:31:38 1360

原创 CPP初级:模板的运用!

哇去,这篇文章居然讲透了模板?

2024-06-10 01:22:44 1056 9

原创 CPP初阶:CPP的内存管理模式

我靠,哥,这篇文章看下来我彻底通透了!

2024-06-09 19:01:40 800 3

原创 进军rust:从0开始学习rust语法

Rust语言中的基础数据类型有以下几种:整数型简称整型,按照比特位的长度和有无符号位可以分为以下几种isize和usize两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,如果是32位架构的处理器将使用32位位长度整型。整型变量默认使用i32.Rust和其他语言一样支持32位浮点数(f32)和64位浮点数(f64)64位浮点数的精度更高,因为它有64个比特位可以表示数据因为现代计算机处理器对两种浮点数计算的速度几乎相同,默认情况下计算机会使用六十四位浮点数。3.其他类型其他类型

2024-06-09 00:22:32 1214 3

原创 一篇文章讲透排序算法之归并排序

大师,我悟了!原来归并排序这么简单!速进!一篇文章醍醐灌顶!

2024-06-04 18:29:23 1209 34

原创 一篇文章讲透数据结构之树and二叉树

哥,你这么细的吗?

2024-05-31 23:15:36 1416 45

原创 C++的第一道门坎:类与对象(三)

一篇文章醍醐灌顶,彻底搞明白类与对象!!!

2024-05-30 20:35:55 1173 9

原创 一篇文章讲透排序算法之快速排序

哇去?六千五百字讲明白了快速排序?速进!一篇文章醍醐灌顶!

2024-05-29 22:24:21 3065 26

原创 C++的第一道门坎:类与对象(二)

娃趣,这篇文章竟然彻底讲透了类与对象!

2024-05-28 21:20:47 1561 23

原创 C++的第一道门坎:类与对象(一)

哇趣?类与对象还能介么讲?速进!一篇文章醍醐灌顶!

2024-05-27 22:02:21 2285 30

空空如也

空空如也

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

TA关注的人

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