自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++:map和set

2024-07-29 18:55:15 1133 25

原创 C++:红黑树(RBT)

enum Color // 节点颜色RED,BLACKRBTreeNodeenum Color // 节点颜色 {RBTreeNode < T >(const T & data = T() , Color col = RED) : _data(data) , _parent(nullptr) , _left(nullptr) , _right(nullptr) , _col(col) // 新增节点默认为红色 {} T _data;Color _col;

2024-07-28 00:39:38 684 5

原创 C++:平衡搜索二叉树(AVL)

int _bf;:_kv(kv),_bf(0){}由于要保证左右子树高度之差的绝对值不超过1(-1/0/1),所以引用了平衡因子_bf来维护,平衡因子的计算为右子树高度减去左子树高度因为AVL树会对节点进行旋转,所以引入了父节点指针_parent来维护。

2024-07-27 01:56:07 968 28

原创 C++:搜索二叉树

对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。好啦,本章对于《C++:搜索二叉树》的学习就先到这里,如果有什么问题,还请指教指教,希望本篇文章能够对你有所帮助,我们下一篇见!:在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删除节点中,再来处理该结点的删除问题–替换法删除。

2024-07-18 16:20:19 695 16

原创 Linux:权限

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。你学会了吗?

2024-07-18 15:01:50 545 14

原创 C++:多态(继承)

在 C++ 中,多态性(Polymorphism)是面向对象编程中一个重要的概念,它允许使用统一的接口来操作不同的对象,从而提高代码的灵活性、可维护性和可扩展性。好啦,本章对于《C++:多态(继承)》的学习就先到这里,如果有什么问题,还请指教指教,希望本篇文章能够对你有所帮助,我们下一篇见!进行重写,重写后的虚函数会产生新的地址,放入虚表中。

2024-07-09 21:53:39 1150 23

原创 C++:继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。举个比喻:你继承了你父亲,你父亲的财产你也有,你父亲的车也就是你的车…public:protected:// 姓名// 年龄// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。

2024-07-08 22:24:26 899 42

原创 C++:栈(stack)、队列(queue)、优先级队列(priority_queue)

好啦,本章对于《C++:栈(stack)和队列(queue)》的学习就先到这里,如果有什么问题,还请指教指教,希望本篇文章能够对你有所帮助,我们下一篇见!,它们是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。栈是一种容器适配器,专门设计用于在后进先出(后进先出)上下文中操作,其中元素仅从容器的一端插入和提取。

2024-06-04 16:16:54 1153 41

原创 C++:list模拟实现

!话不多说,开始进入正题。

2024-06-03 10:58:32 1300 65

原创 C++:vector的模拟实现

!话不多说,开始进入正题。

2024-05-31 21:58:40 2170 57

原创 C++:vector基础讲解

hello,各位小伙伴,本篇文章跟大家一起学习《C++:vector基础讲解》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 !如果本篇文章对你有帮助,还请各位点点赞!!!话不多说,开始进入正题文章目录:maple_leaf:关于vector:maple_leaf:vector构造函数:leaves:vector() 无参构造(默认构造):leaves:vector(size_type n, const value_type& val = value_type()) 构造并初始化n个

2024-05-24 20:27:54 2107 53

原创 C++:string的的模拟实现

!话不多说,开始进入正题。

2024-05-19 15:32:44 935 47

原创 C++:string类(第二章)

!话不多说,开始进入正题。

2024-05-08 07:00:00 1279 74

原创 C++:string类(第一章)

C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。OOP是面向对象编程的意思所以,C++引入了string类。字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。

2024-05-01 23:52:58 1781 47

原创 C++:模板(初级)

我们知道再制造月饼或其它食物时,会用到模具可以用来快速制作食品样子,即使食品的材料不一样,但是造出来的样子都是大差不差的。以上代码都是实现了交换的功能,利用了函数重载,但是要交换不同的类型,就要再写一次函数,那实在是太麻烦了,所以引入了模板。以交换功能为主,实现多种类型的交换,也就是:“交换功能”为模板,“交换类型”为材料,我们来提供材料,编译器负责用模板制造。class 类模板名// 类内成员定义public:, _size(0){}

2024-04-24 21:07:45 1259 46

原创 C++:new与delete

hello,各位小伙伴,本篇文章跟大家一起学习《C++:new与delete》

2024-04-23 14:59:29 808 30

原创 C++:类与对象完结篇

类体里只是进行了声明,并没有定义。

2024-04-21 16:10:57 963 10

原创 C++:运算符重载和“const”成员

完成赋值。

2024-04-17 16:00:22 675 12

原创 C++:构造函数、析构函数、拷贝构造函数

进行处理,但是。

2024-04-10 16:18:36 1057 28

原创 C++:类与对象(一)

C++类与对象

2024-04-07 17:41:15 1116 8

原创 C++:初步接触C++(2)

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;

2024-04-05 23:03:58 751 15

原创 C++:函数重载和引用

举个例子,a.cpp调用b.cpp中的Add()函数,那么链接器看到a.o调用Add()函数,但没有地址时,就会在去b.o寻找Add()的地址,然后链接在一起。过的函数名去寻找地址,函数参数个数不同、参数类型不同、参数类型顺序不同,修饰后的函数名自然不同,从而不会发生分歧。的学习就先到这里,如果有什么问题,还请指教指教,希望本篇文章能够对你有所帮助,我们下一篇见!

2024-04-05 21:32:32 1072 13

原创 初步接触C++

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。在一个命名空间(Namespace)里的成员可以是变量、函数、类、结构体等namespace Pakho//Pakho是命名空间的名字,可以自己随便取//将上述的问题就这样解决了,这里的rand不再是函数int Add(int x,int y)//函数struct Node//结构体int data;int Add(int x,int y)//函数。

2024-03-27 16:44:13 1029 12

原创 多种排序讲解

然后建立指针指向数组左右两端,右端指针先向左走(后面会解释),找比基准值小于等于的元素或者遇到左端指针时停下,如果没有遇到左端指针,左端指针向右走,找比基准值大于等于的元素或者遇到右端指针时停下,如果没有遇到右端指针,两指针指向的元素进行交换,重复如此,直至两指针相遇,再将基准值插入两指针相遇的位置,因为该位置左边小于等于基准值,右边大于等于基准值。

2024-03-20 22:26:29 1050 7

原创 动态内存管理

!话不多说,开始进入正题。

2023-12-12 16:06:23 1093 25

原创 深入理解指针4

本篇将会带着小伙伴们一起通过模拟实现qsort来继续深入学习指针GO!GO!GO!

2023-12-11 20:52:09 902 16

原创 深入理解指针3

不过写成数组形式更容易让人理解罢了。

2023-12-05 22:31:32 1178 19

原创 初步认识结构体

位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以 选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。int b:5;int c:10;int d:30;A就是⼀个位段类型。那位段A所占内存的⼤⼩是多少?答案是:8字节其实位段就是为了节省空间的,冒号后面的数字就是对应变量占多少个比特位。

2023-12-04 21:31:02 1030 11

原创 你真的了解数据在内存中的存储了吗?

其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和小端字节序存储,下⾯是具体的概念:⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存 在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存 在内存的⾼地址处。小伙伴们要记住喔!!以便区分大小端。

2023-11-28 17:16:44 928 14

原创 深入如理解指针2

!本篇主要学习数组在指针里的使用 ,话不多说,进入正题。

2023-11-27 23:19:22 999 7

原创 轻松掌握C语言的简单字符串函数

hello,各位小伙伴,欢迎大家的到来,本篇文章将会跟大家一起来学习,并带着大家简单模拟实现某部分函数字符串函数1.strlen函数的使用和模拟实现strlen的语法最后得到的结果就是:6strlen的基本原理我们知道字符串末尾是自带'\0'的,当strlen接收到字符串的地址时,strlen会从该地址开始一个一个字符的计数,直到strlen读到字符‘\0’时,就会停止计数,这里strlen并没有把字符'\0'计数喔,要注意!

2023-11-26 23:48:20 880 8

原创 深入理解指针1(C语言)

这篇文章将回带着大家来深入了解指针,如果有什么问题,还希望大家指教指教那么,先公布上一篇留下的题目的答案吧无论给出的数多大,都不会超出运算范围好,接下来进入正题!!!

2023-11-24 19:42:55 974 8

原创 操作符详解

结构体变量的定义有两种方法:1.在定义结构体的时候定义变量 2.是后来在定义结构体变量二者结果都一样int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2初始化:初始化member就在member前加上一个”“,然后就可以对该member初始化;或者直接按着顺序初始化。struct tag//成员列表//变量列表//struct tag variable = {.....}按顺序初始化。

2023-11-16 23:04:34 90 6

原创 什么叫函数递归??

把一个大型问题层层转换为与原问题相似的,规模较小的问题来求解;直至问题不能再被拆分,递归结束,所以递归的思考方式就是把大事化小的过程。递归中的递是指递推,归是指回归。

2023-11-08 19:14:55 103 7

原创 浅浅讲一下函数

库函数,我们在打印和读入的时候会引用到头文件,然后使用printf和scanf来进行打印和读入,这些函数都是编译器厂商根据规定来实现的,当然,库函数还有很多....函数的声明就是告诉编译器我要用到什么函数,不然编译器会报错int main()int a = 0;int b = 0;return 0;return 0;

2023-11-06 21:56:04 111 5

原创 C语言:扫雷(简单制作版)

扫雷这个游戏大家都应该玩过,那么扫雷规则我就不细说了,我将会以9*9的扫雷棋盘进行讲解制作一个扫雷游戏,肯定是比较复杂,所以我们选择多份文件、多个函数进行编写代码一个,h头文件,两个.c文件。

2023-10-30 23:52:09 134 7

原创 浅浅讲一下数组

数组是同一种元素的集合,那么创造数组也就是创建一个空间储存同一种元素(数据)。数组可以存放一个或者多个元素,但是元素个数不能为0。数组有一维数组、二维数组、三维数组等多维数组。多维数组最常见的是二维数组。

2023-10-28 21:32:28 67 3

原创 练手:猜数字小游戏

首先,我们要知道猜数字的规则,假定一个数字56,当我输入83,提示偏大,以此类推。

2023-10-23 22:19:36 65 2

原创 循环语句2、分支语句2

我们发现,输出结果中没有数字5,那是因为,当a = 5时,if语句为真,执行continue,使程序进行a++调整后,又再次走回for循环,那么就不会执行后面的printf语句,所以数字5就不打印了。对上一次文章进行补充:for循环里3个表达式时可以省略的,但是,如果判断语句省略,表明循环条件永远成立,进入死循环,但是建议不要随便省略,因为很容易出错。很明显,continue在执行完循环语句时,又再一次进行判断,而break直接跳出循环,再看while。

2023-10-23 21:10:19 61 2

原创 C语言switch语句

从英文意思角度,case就是情况、事例 ,也就是说在某一情况下,就执行后面跟着的语句,可以看到switch (1 - 0 )结果为1,所以执行case1;而default的意思就是什么情况都不符合,也就是没有一个case符合,那么就会执行default后面的语句。哎,里面还有一个break,这个break和上一篇讲到循环语句功能差不多,循环语句中跳出循环,在这里就是“出来”的意思。我们能看到,case1、case2、和default后面跟着的语句都执行了,这就很容易理解break的作用了。

2023-10-21 20:44:36 128

空空如也

空空如也

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

TA关注的人

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