自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 走进Linux的世界:虚拟内存空间

此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。我们发现父子进程对应的地址是一样的,这就说明父子进程共用一份代码和数据。这就说明这个地址不是物理地址,而是虚拟地址,真正的物理地址我们看不到,被。我们的栈是向下生长,而堆却是向上生长 ,但我们上一篇博客讲到,我们的。这个是虚拟内存真正的样子,存在一个页表将虚拟内存映射到物理内存。要回答上面的问题,就要真正的了解虚拟地址了。咦为什么,我们的地址没有改变,子进程改了。的值的时候,我们就会发生写时拷贝,将。

2025-11-23 23:06:03 422

原创 走进Linux的世界:命令行参数和环境变量

此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。我们这个命令行参数这个操作就应用到了ls这些命令上,这些命令没有什么好神奇的就是一个可执行的二进制文件罢了,就运用到了ls加选项,很多指令都能加选项。相信大家见过这个main函数带参数的情况,这个参数就是命令行参数,前者代码参数的个数,后者则是内容。由此可以看出子进程能获取父进程的环境变量,环境变量是全局的本质:环境变量可以被子进程继承。我们也可以把当前路径加入到环境变量PATH中,这样就可以直接运行。

2025-11-19 23:30:16 549

原创 走进Linux的世界:进程调度

我们要解决这个问题也很简单,我们有两个queue一个叫活跃队列,一个叫过期队列,一个进程调度完之后就会进入过期队列,同样的一个刚来的进程也会进入过期队列,直到活跃队列为空交换队列就可以解决这个饥饿问题了。在调度的时候,优先级60的进程在等59的进程完毕,那如果我们一直有59的进程进入队列,我们是不是不会轮到60的进程,这样是不是很不公平!我们可以将不同的结构体对象也用一个链表连接了,只要它的成员有一个link类型的对象就可以连接。c语言中,如何变量的地址数字,是开辟众多字节中,地址数据最小的那个!

2025-11-17 19:02:20 962

原创 走进Linux的世界:进程优先级

我们在食堂吃饭时,一般都需要排队,如果我们资源足够多,每个人一个厨师,那就不需要存在优先级了,但我们这个世界的真相就是需要优先级的,我们人数一直在进行优先级,你考大学时就是看你的成绩的优先级选大学,你选工作时,面试官就会把所有来面试的人进行优先级排序。补充概念-竞争、独立、并行、并发。

2025-11-11 22:31:42 870

原创 走进Linux的世界:进程状态

这些状态不是孤立的,背后是 Linux 内核的调度智慧 —— 用合理的状态管理,让 CPU 资源物尽其用,同时保证系统稳定。系统挂掉了的危害是很大了,那我们的重要的进程,比如一个进程里面记录了一个月的交易记录,这个进程就要处于D状态不让。状态就是专门为调试准备的,T和t的是没有区别的,主要是调试太重要了,专门为它弄个状态。准备好和我一起冲进代码的奇幻宇宙了吗?

2025-11-11 21:20:03 971

原创 走进Linux的世界:初识进程(Task)

生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。不会直接与磁盘中的文件进行交互,它只会和内存打交道,要执行一个程序,就得将它的代码和数据加载到内存中,就和我们的学号一样,每个人都不一样,是标识每个人不一样的标识符。文件夹里面包含了所有的进程,而我们所有的进程的标识符。我们后面会花大量的时间一个一个介绍这些内容的。这样描述是不正确的,我们的程序本质上就是文件。结构体将每个进程连接起来这样就形成了进程。

2025-11-04 18:55:47 826

原创 走进Linux的世界:初识操作系统(Operator System)

要实现数据化管理,第一步是 “描述” 被管理者 —— 把每个学生的核心属性整理成标准化的 “数据模板”,这就是编程中的struct结构体,对应操作系统对资源的 “描述机制”。操作系统,但它的外壳不一样,它有不一样的图形化界面,从而形成了很多安卓手机平台,他们大多数都是只改变了外壳的图形化界面或者对某些功能进行优化,但底层的内核是没有改变的。有了标准化的 “描述”,下一步就是 “组织”—— 将所有学生的结构体按规则串联,形成可高效遍历、查询的结构,这对应操作系统对资源的 “组织机制”。

2025-11-03 20:12:00 689

原创 走进Linux的世界:冯诺依曼体系结构

我们的输入设备一般有:我们的键盘、鼠标、网卡等,输出设备有显示器、磁盘、打印机、喇叭等,可见有些设备即可以做输入设备又可以做输出设备,有些设备只能做一个。就是计算机会将你可能要使用的文件加载到内存中,比如你访问一个数组先访问了0号位置的元素,他就把0号元素后面的元素加载到内存中。我们有很多存储空间的设备,而每种设备的造价和存储效率存储空间的大小各不相同,离我们。我们先来认识这张图上的内容,在来回答一个问题:为什么要有冯诺依曼体系结构?效率高,但外部设备的效率不高啊,我们最后的效率就是外部设备的效率。

2025-10-31 23:13:24 182

原创 领略算法真谛:求组合数

求组合数​嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let’s go!求组合数先来回归一下高中知识:从 n 个不同的元素中,任取 m 个元素排成⼀列。所有取法的个数就是排列数,记作Anm​。Anm​n−mn!

2025-10-12 19:25:29 571

原创 C++入门小馆:C++11第三弹(可变参数模板)

生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。中支持可变参数模板,也就是支持可变参数的函数模板和类模板,可变数目的参数被称为参数包,存在两种参数包:模板参数包,表示零或多个模板参数;函数传入任意数量的参数,并且参数的类型可以不一样。我们可以使用参数包来写可变参数模板,但这不是我们常用的方法。我们发现传右值和左值它们的效率是一样的。函数就是一个可变参数函数,我们可以向。用来计算参数包的个数。4.1 基本语法及原理。

2025-09-21 17:07:18 462 29

原创 走进Linux的世界:gdb的使用

生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。版本小一些,所以我们写完代码之后交给测试,交的也是。它会分屏,上面显示源代码,下面可以输入指令。版本才支持我们调试,因为它有调试信息,而。版本,为了让用户拿到更轻量化的版本。:从上一次位置列出10行的源代码。版本它没有调试信息,但它的大小要比。:单步执行,不进入函数内部,逐过程。:单步执行,进入函数内部,逐语句。语言代码有两种版本,一种是。文件发现出现了下面的情况。

2025-09-20 22:45:03 989 23

原创 C++入门小馆:C++11第二弹(右值引用与移动语义)

此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。当我们传入右值时,容器会调用移动构造,将右值对象的资源转移到容器空间的对象上。如果这里如果强行使用左值引用作为返回值的话,这里就成了野引用,因为我们创建的。当我们传入左值时,容器会调用拷贝构造进行拷贝,将对象拷贝到容器空间的对象。1.左值引用作形参时可以引⽤传参,代替指针的功能,能改变传入的变量的值。是要销毁的值,我们把它交换给我们需要构造的值,交换后。这个函数中,无论我们传入的值是左值还有右值。

2025-09-08 20:22:56 834 32

原创 C++入门小馆:C++11第一弹

此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的。C++11是C++发行的第二个主要版本,并且对比C++98,有了重要的更新,C++03之后过了整整八年才C++11才真正问世。,也就⽀持任意多个值构成的 {x1,x2,x3…STL中的容器⽀持任意多个值构成的 {x1,x2,x3…虽然上面的初始化已经很方便了,但在容器初始化时,如果我们用多个值进行初始化时,就要写很多构造函数,很麻烦。的类,这个类底层是开一个数组,将数据拷贝过来,然后有两个指针分别指向开头和结尾。

2025-09-03 20:12:12 464 18

原创 走进Linux世界:make和makefile

自动化构建工具make,makefile​嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let’s go!自动化构建工具make,makefile。

2025-08-08 14:25:09 1342 18

原创 进阶数据结构:用红黑树实现封装map和set

用红黑树实现封装map和set​嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let’s go!用红黑树实现封装map和set1.实现红黑树上集我们已经实现了一个普通的红黑树。

2025-07-26 22:35:53 1017 10

原创 走入Linux的世界:编辑器Vim

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!IDE集成开发环境Linux下的开发工具是独立的!写代码 -- 编译器vim编译代码 -- gcc/g++调试 -- gdb 、cgbd构建工具 -- makefile 、make、cmakegit。

2025-07-25 06:00:00 1081 10

原创 走进Linux的世界:软件包管理器

软件包和软件包管理器就好比,“APP”和应用商店的关系。

2025-07-24 15:19:37 808 1

原创 走进Linux的世界:权限问题

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-07-24 01:09:53 733 5

原创 进阶数据结构:红黑树

红黑树也是一棵平衡二叉树,我们之前实现的AVL树,他是通过多次的旋转而得到的平衡,付出了相应的代价,让平衡因子的绝对值小于2,才使我们二叉树的高度实现了log n,而我们的红黑树要求最长路径不超过最短路径的两倍,通过一下条件来实现:1.每个节点不是红色就是黑色,2.根节点是黑色的3.每条路径的黑色节点数相同4.不存在连续的红色节点我们就通过这些条件来实现最长路径不超过最短路径的两倍注意我们的完整的一条路径是到左右子树为空的路径像这样的一棵树他的路径数就是9条。

2025-07-18 21:12:26 851 11

原创 走进Linux的世界:Linux基本指令(三)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-07-18 01:00:17 1148 16

原创 ​ 走进Linux的世界:Linux基本指令(二)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!书接上文,我们继续。

2025-07-16 23:23:28 1100 12

原创 走进Linux的世界:Linux基本指令(一)

ls -a能展开隐藏文件,这里以( . )点开头的文件就是隐藏文件,我们发现即便是空文件夹也有两个隐藏文件一个点和两个点,那么它们分别代表什么呢?此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。相信大家配置好了Linux相关的环境后都迫不及待的想学习一些基本指令了,今天我就来简单的讲解一下简单的指令吧。这里ls -l 展开了该文件的详细信息,时间的最后一次修改该文件的时间。如果我们需要直观的看我们的目录,以树型的结构我们可以采用tree指令。

2025-07-15 23:05:21 1215 23

原创 题山采玉:Day3

此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。对x做减法,要么就减到9要么就不减,比如将4减到9要先减四次减到0然后还得减一次。选i位置 f[i][j][k] += f[i-1][j -1][k - i];f[i][j][k]表示,从前i个数里面挑j个数其中和恰好等于k的个数。不选i位置 f[i][j][k] += f[i-1][j][k];最后结果:f[2022][10][2022]初始化将f[0][0][0] = 1;填表顺序从上到下,从左到右。

2025-06-09 20:32:05 468 14

原创 题山采玉:Day2

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-06-04 23:11:22 868 13

原创 题山采玉: Day1

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!从今天开始每天写四道题的题解,望大佬监督!

2025-06-03 23:13:07 719 15

原创 领略算法真谛:单源最短路问题

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!什么是单源最短路?假设一个图中的两个顶点vi,vj,从vi到vj路径上所经过的权值之后就称为带权路径长度。但vi到vj的路径有很多条,将带权路径长度最短的那条路径就称为最短路径。• 单源最短路,即图中一个顶点到其它各顶点的最短路径。

2025-05-21 00:05:56 884 35

原创 进阶数据结构: AVL树

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-05-14 22:21:17 2749 46

原创 进阶数据结构: 二叉搜索树

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-05-11 12:38:48 1380 28

原创 C++入门小馆 :多态

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!面向对象三大特性:封装,继承,多态。今天来讲讲最后一个多态。

2025-05-08 15:03:37 1103 44

原创 领略算法真谛: 多源bfs

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-05-05 23:14:03 788 29

原创 C++入门小馆:继承

继承是针对类的,它的作用是增加复用。比如我们如果要实现一个图书管理系统,涉及到人物这些类中,有老师,学生等。public:// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证// ...// 学习// ...protected:// 姓名// 地址// 电话// 年龄int _stuid;// 学号public:// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证// ...// 授课//...protected:string _name = "张三";// 姓名// 年龄。

2025-05-04 13:15:35 855 15

原创 C++入门小馆: 模板

1.

2025-04-30 21:12:55 860 8

原创 领略算法真谛: gcd 和 lcm(最大公约数和最小公倍数)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!1.最⼤公约数和最⼩公倍数。

2025-04-29 17:01:34 907 6

原创 C++入门小馆: STL 之queue和stack

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!先来了解。

2025-04-27 23:20:06 904 11

原创 C++入门小馆: 深入了解STLlist

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-04-25 21:16:40 1190 9

原创 C++入门小馆: 探寻vector类

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!先来了解一下vector的使用。

2025-04-23 18:16:10 1190 10

原创 C++入门小馆: 深入string类(二)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!本章来模拟实现一下string类,不是按照模板实现,而是按照容易理解的实现。

2025-04-21 20:46:54 823 10

原创 C++入门小馆: 深入string类(一)

目录1.为什么我们要学习string类?2.标准库中的string类2.1string类(了解)2.2 auto和范围forauto 关键字:范围for2.3 string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作3. string类对象的访问及遍历操作4. string类对象的修改操作5. string类非成员函数我们学习一个类或者STL,都要经历几个过程,先了解一个类怎么使用,了解里面最常用的接口,了解一个类的底层怎么实现的,根据自己的理解优化改造类。一般能到第

2025-04-19 11:49:40 953 8

原创 C言雅韵集:野指针

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

2025-04-18 23:11:06 1101 9

原创 C++入门小馆: C/C++内存管理

int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】// 除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;

2025-04-17 15:34:30 846 5

空空如也

空空如也

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

TA关注的人

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