自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自主shell命令行解释器

shell从用户读入字符串“ls”。shell建立一个新的进程,然后等待进程中运行ls程序并等待进程结束。用下面的时间轴来表示时间发生次序。shell由标识为sh的方块,它随着时间从左向右移动。然后shell读取新的一行输入,建立一个新的进程在这个进程中运行程序,等待进程结束。所以写一个shell,需要循环一下过程。

2025-05-10 20:30:54 379

原创 make和makefile的使用,以及写一个简单的进度条程序

通过主函数传递参数模拟下载过程。Makefile文件。

2025-05-10 16:15:26 288

原创 系统开发工具

在Linux下安装软件,一个通常的办法是下载程序的源代码,并进行编译,得到可执行程序。但这样太麻烦,于是有些大佬把一些常用的软件提前编译好,做成软件包(可以理解为Windows上的安装程序)放在服务器上,通过包管理器可以方便的获取这个编译好的软件包,进行安装。yum(Yellow dog Updater, Modified)是Linux下常用的一种包管理器。主要应用在Fedora、RedHat、Centos等发行版上。

2025-05-10 10:42:15 921

原创 哈希表模拟

顺序结构以及平衡树中,元素关键码与其存储位置没有对应关系,因此在查找一个元素时,必须要经过关键码的多次查找。顺序查找时间复杂度为O(N),平衡树中为树的高度即O(log N),搜索效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到想要搜索的元素。

2024-07-14 13:16:09 701

原创 红黑树模拟

/ 节点颜色enum ColorRED,BLACK// 红黑树节点定义:_kv(kv){}// 节点的左孩子// 节点的右孩子// 节点的双亲(红黑树需要旋转)// 节点的颜色// 节点的值将节点默认为红色,可以保证任条简单路径的黑色简单的个数相同。

2024-07-01 11:37:58 763

原创 AVL树模拟

{}int _bf;//平衡因子T _key;加入以parent为根的子树不平衡,即以parent的平衡因子为2或-2,分别考虑以下情况1.parent的平衡因子为2,说明parent的右子树高,设parent的右子树的根为RSub当RSub的平衡因子为1时,执行左单旋,当RSub的平衡因子为-1时,执行左右双旋。2.parent的平衡因子为-2 ,说明parent的左子树高,设parent的左子树的根为LSub当LSub的平衡因子为-1时,执行右单旋。

2024-06-29 17:39:10 736

原创 二叉搜索树

二叉搜索树又称二叉排顺树,它或者是一颗空树,或者具有以下性质的二叉树a.若他的左子树不为空,则它左子树上的所有节点都小于根节点的值b.若它的右子树不为空,则它右子树上的所有节点都小于根节点的值c.它的左右子树也分别为二叉搜索树。

2024-06-23 10:04:12 816

原创 C++多态特性

多态是在不同继承关系的类对象去调用同一函数,产生了不同的行为。在继承中要构成多态有两个条件1.必须通过基类的指针或者应用调用虚函数2.被调用的函数必须是虚函数,且派生类必须对基类函数进行重写public:cout << "成人票" << endl;public:cout << "学生票" << endl;func(A);student B;func(B);return 0;在虚函数后面写上 =0,则这个函数为纯虚函数。

2024-06-20 16:37:45 666

原创 C++继承特性

注意 :1.基类private成员在派生类无论什么方式继承都是不可见的。这里的不可见是指基类的私有成员继承到派生类中,但语法限制派生类对象不管在类里面还是类外面都不能去访问它。2.基类私有成员访问方式 == Min(成员在基类的访问限定符,继承方式),public > protected > private。3.使用关键字class 是默认继承方式是private,使用struct 时默认继承方式时public,不过最后显示写出继承方式。4.在实际运用中一般都是使用public继承。

2024-05-23 19:26:48 965 1

原创 C++封装特性

封装是C++中一个非常重要的特性,它允许我们隐藏对象的内部实现细节,只暴露必要的接口给外部使用。通过封装,我们可以提高代码的安全性、可复用性和可维护性。在编写C++代码时,我们应该充分利用封装这一特性来构建健壮且易于维护的代码。

2024-05-18 10:48:55 244

原创 C++中的std::list迭代器

在C++编程中,std::list是一个强大的容器,它基于双向链表实现,提供了高效的插入和删除操作。然而,当我们需要遍历std::list中的元素时,迭代器(Iterator)就成为了我们的得力助手。我们将深入探索C++中std::list的迭代器,并了解它们的工作原理和常见用法。

2024-05-12 20:36:20 793

原创 vector迭代器失效

比如:vector的迭代器就是原生指针T*。因此迭代器失效实际就是底层对应指针指向的空间被销毁了,而使用一块已经被释放的空间,造成的后果可能是(即:如果继续使用已经失效的迭代器,程序可能崩溃)

2024-05-12 14:18:48 186

原创 C++模板初阶

在泛型编程中,程序员可以定义函数、类或算法,这些函数、类或算法可以在多种数据类型上工作,而不仅仅是特定的数据类型。这样,当需要处理不同的数据类型时,就不需要为每种数据类型都编写重复的代码。

2024-05-08 19:22:58 295 1

原创 C++内存管理

int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。

2024-04-26 15:41:04 617 2

原创 C++默认成员函数

但空类中会有编译器自动生成的6个默认成员函数。

2024-04-25 12:40:07 895 1

原创 C++入门

auto 作为一个新的类型指示符来提示编译器,auto 声明的变量必须有编译器在编译时期推到而得得的。

2024-03-20 16:50:35 1110 1

原创 顺序表的实现

常见的数值1、2、3……、教务处系统里保存的用户信息、网页里的信息都是数据当我们想使用大量同一类型的数据时,通过手动定义大量独立的变量对于程序来说,可读性非常差,我们可以借助数组这样的结构将大量数据组织在一起,结构也可以理解为组织数据的方式。

2024-01-26 09:55:31 333 1

原创 预处理详解

例如__DATE__)#define 的内容可以分成几行写,除了最后一行,每行的后面都要加一个反斜杠(续行符) \#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或定义宏。宏的定义方式其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在stuff中。注意: 参数列表的左括号必须与 name 紧邻,如果两者之间存在任何空白,参数列表就会被解释为stuff中的一部分。宏的参数不运算,直接替换。

2024-01-21 17:11:06 795 1

原创 C语言文件操作

磁盘上的文件是文件但在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能分类)。

2024-01-12 22:25:59 763 2

原创 数据在内存中的存储

三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,⽽数值位最 ⾼位的⼀位是被当做符号位,剩余的都是数值位。

2023-12-03 16:36:52 62 1

原创 C语言——指针

要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。

2023-11-30 20:00:13 57 1

原创 字符函数、字符串函数、内存函数

不仅仅是英语要背单词,计算机也需要一定的词汇量。

2023-11-29 22:52:28 52 1

原创 简易版扫雷

先生成2个一到九的随机数,分别表示行和列,再将存放雷的数组的信息进行修改,在修改前我们需要判断该位置是否被修改过了。如果选择的位置不是雷,即显示周围雷的个数;如果是雷游戏结束,并显示雷的分布。当未踩雷时,需要多次排查,所以应该使用循环,循环条件应为输入次数。设置两个char类型的数组可以在初始化时使用一个函数就够了。既可以防止数组越界,又可以使数组的下标与编号一致。将存放雷的信息与显示信息分开可以防止数据类型过多。方便代码的编写与修改,将函数分装为三个部分。game.c函数的实现。game.h声明函数。

2023-11-02 22:00:20 100 2

原创 C语言的基础知识

不同系统中返回值的类型有可能是 unsigned int ,也有可能是unsigned long 还有可能是 unsigned long long ,对应printf()占位符分别是%u %lu %llu.这样是不利于程序的可移植性。%s占位符用来输出全部的字符串,如果只想输出开头的部分,可以使用%,[m]s指定输出的长度,其中[m]代表一个数字,表示所要输出的长度。•\0 :null 字符,代表没有内容,\0就是\ddd这类转义字符的一种,字符串结束的标志,其ASCII码值为0。如:\130表⽰字符X。

2023-10-21 23:15:49 188 1

原创 .gitignore--忽略文件的版本追踪

匹配模式是一种用于查找和识别文本中特定模式或模板的技术。在自然语言处理中,匹配模式通常是基于规则或模式匹配算法进行文本匹配和提取的方法。匹配模式可以用于多种任务,如信息提取、文本分类、命名实体识别等。它可以通过编写规则来匹配特定的词语、短语、句子结构或者语义模式。匹配模式还可以使用通配符、正则表达式或其他模式匹配工具来增加灵活性。例如,如果您希望从文本中提取所有的电子邮件地址,您可以编写一个匹配模式来匹配包含@符号的字符串,并添加额外的规则来满足电子邮件地址的格式要求。

2023-10-14 22:00:53 186 1

原创 乘法口诀表

我们需要思考两个for循环的关系:外面的for循环元素是i,在表格中控制行;里面的for循环元素是j,在表格中控制列。我们可以在(“%d*%d=%d”)添加一个空格,即(“%d*%d=%d ”)放可使每个表达式有一定的间距。我们可以观察到该结果还是有点不整齐,因为输出的结果长度不同,我们需要控制输出结果长度相同即可。我们只需要让内层for循环在结束时有一个换行,即可时每9例为一行。若想使输出结果为一组,我们仅需要控制j

2023-07-25 17:35:54 135

原创 C语言分支循环语句

分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部。⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语。if语句通过判断真假再进行下一步,常与else连用,也可以单独使用。句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。1 if与else连用时的流程图。for语句的基本结构。

2023-07-24 21:19:20 163

空空如也

空空如也

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

TA关注的人

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