自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++——红黑树

/定义一个枚举类,用于表示颜色enum ColorRED,BLACK//默认该红黑树的存储模型为key_value型//节点默默的颜色为红色: _kv(kv){}

2024-03-27 18:27:46 980

原创 C++——AVL树

看到这里,相信大家已经对AVL树的结构和特点有了较为深刻的了解,对于AVL树的其他操作,例如删除节点erase(),这里不再讲述,如有兴趣大家可以自行研究。//bf为平衡因子,即[右子树高度 - 左子树高度]: _kv(kv){}public://找到插入位置else//连接新节点else//更新平衡因子,调节搜索二叉树的平衡elsebreak;elsebreak;

2024-03-17 13:20:35 814 1

原创 Linux——磁盘文件

通过前一篇文章,我们知道了如何对加载在内存中的文件进行读写等操作,并了解了其内在的原理。同时我们也应该清楚,并不是所有的文件都会被加载入内存,而没有被加载入内存的文件,就被存放在磁盘中,称为磁盘文件。现在,就让我们一起来学习磁盘文件的相关知识本片思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至,供免费查阅。

2024-03-12 20:16:52 1097 1

原创 二叉树遍历(前中后序的递归/非递归遍历、层序遍历)

如上图中:A -> B -> C -> NULL -> NULL -> D -> NULL -> NULL -> E -> NULL -> NULL。

2024-03-09 22:05:25 1276 1

原创 C++——搜索二叉树

本章思维导图:注:本章思维导图对应的.xmind和·.png文件都已同步导入至,可供免费查阅。

2024-02-21 19:02:57 937 1

原创 Linux——系统文件I/O

注:学习本次内容之前,最好先对有所了解本章思维导图:注:思维导图对应的.xmind文件和.png文件都已同步导入至,可供免费查阅在以前学习的C语言中,我们可以通过fwrite和fread等各种库函数对系统文件进行读写操作。同时也应该注意到,C语言作为一种用户级语言,其可以利用库函数对系统的底层数据进行各种操作,这个过程中一定会经过操作系统的处理,因此我们可以确定。今天我们就要来学习有关文件操作的系统调用及其背后的细节。

2024-02-16 10:06:01 1271 1

原创 C++——多态

本篇所有的测试代码都是在VS2019的x86环境下运行的,所涉及的指针都是4字节指针。不同环境可能会有所不同。

2024-02-12 17:25:12 808 1

原创 C++——继承

派生类 : 继承方式 基类公有继承public、保护继承protected、私有继承private在日常使用中,一般只会使用public公有继承由于基类成员访问限定符和继承方式二者的相互影响,派生类在继承了基类成员后,继承成员的权限会发生这样的变化:类成员/继承方式public继承protected继承private继承基类的public成员派生类的public乘员派生类的protected成员派生类的private成员基类的protected成员派生类的protected成员。

2024-02-10 08:00:00 867 1

原创 C++泛型编程——模板

注:本章思维导图对应的和文件都已同步导入至资源在C++中,如果我们不借助库函数,要实现两个数据的交换函数,由于要考虑到数据类型的多样性,我们难免要将函数重载很多次,例如:函数的函数体基本相同,只有交换数据的类型不同,但就是由于这个小小的不同迫使我们产生很多冗余代码,使生产效率变得低下为了解决这一问题,C++就支持了泛型编程这一概念:在C++中,泛型编程就是靠模板来实现的基本格式为:基本格式为:例如:注意:用不同的类型使用函数模版生成一个具体的函数这一过程叫做函数模板的实例化,函数模板的实例化有以下两种方

2024-02-08 08:00:00 1423 1

原创 C++适配器——stack && queue

本章思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至,可免费查看。

2024-02-06 19:31:22 734 1

原创 C++——list的使用及其模拟实现

作为标准模板库中的容器,list同样也是一个类模板如果要定义一个list对象,就需要指定其存储的数据类型T。list

2024-01-28 11:32:30 1693 1

原创 Linux——shell程序的简单实现

本章思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至,可免费查阅在学习完有关进程的知识后,我们就可以开始尝试自己实现一个简单的shell程序了。注:在编写简单的shell程序之前,你首先需要掌握:👉👉👉。

2024-01-25 20:39:11 1518

原创 Linux——进程程序替换

本章思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至,供免费查阅。

2024-01-23 17:32:31 1105

原创 C++——vector的使用及其模拟实现

是一个迭代器,其指向原始数据的某一个位置。但是如果要进行扩容操作,由上面的分析可以知道,如果要进行扩容,那么。因此,为了避免迭代器失效带来的影响,我们得遵循以下原则。vector的尾插就和顺序表的尾插一样,就是在最后面新增一个数据。的空间,再将原来的数据复制过来,最后再释放原来的空间。这种内置类型呢,难道它们也有自己的构造函数吗?答案确实如此,为了适应类和对象,我们可以认为。这种自定义类型好说,他们有构造函数,但如果。竟然在插入的时候就出问题了,这是为啥?可以看到,这段代码的逻辑是:先。

2024-01-20 22:34:05 908

原创 Linux——环境变量与本地变量

本章思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至。

2023-12-24 15:25:54 1312 1

原创 Linux——进程地址空间与进程控制

通过上面的讲解,我们知道,要知道代码是否出异常,就需要知道它的异常信号码,要知道它的运行结果是否正确,就需要他的进程退出码。因此,如果想要知道一个进程的执行情况进程退出码和异常信号码。

2023-12-14 18:00:32 1076

原创 Linux——操作系统与进程的基础概念

本章思维导图:注:思维导图对应的.xmind和.png文件都已同步导入至。

2023-12-07 11:09:29 1091

原创 冯诺依曼体系结构

本章思维导图:注:本章思维导图对应的.xmind和.png文件都已同步导入至。

2023-11-30 23:53:21 464

原创 C++STL——string类详解及其模拟实现

STL全称,译为下面展示STL的六大组件:本章,我们将对string部分常用的功能进行说明和使用,最后对string进行简单的模拟实现本章思维导图:注:本章思维导图已经同步导入至。

2023-11-27 15:44:01 1329

原创 Linux——编译器gcc/g++、调试器gdb以及自动化构建工具makefile&&make详解

我们可以用。

2023-11-19 23:44:52 975 2

原创 C++——内存管理(new/delete使用详解)

所以C++才要新创建两个运算符。

2023-11-14 16:34:03 651

原创 Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作

vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器本篇我们介绍vim命令模式(command mode)、底行模式(last line mode)、插入模式(insert mode)

2023-11-12 21:21:08 10159 8

原创 Linux——手把手教你解决sudo指令无法使用的问题

sudorootroot但是,如果是新创建的普通账户,一般来说一开始是不能执行sudosudoerssudosuduersrootsudosudoerssudorootsudoersroot。

2023-11-10 14:04:55 7941

原创 C++——类和对象(初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类)

但也不是说初始化列表就能完全替代函数体。因为有时候函数体需要进行检查等操作。

2023-11-07 20:04:00 188

原创 分治法——找众数

要利用分治法找众数,首先就先要使数组有序。这里,我们用C语言库中的。语句没有执行,那就说明。就是最大的,那就需要和。注:本题已通过牛客网。

2023-11-05 20:56:38 1264

原创 C++——类和对象之运算符重载

应该清楚,赋值实际上也是一种拷贝。浅拷贝又称值拷贝浅拷贝只是对成员变量值的简单复制,而不是复制指向的动态分配的资源(如堆内存)原对象和拷贝对象将共享相同的资源。深拷贝又称址拷贝相较于浅拷贝只是对成员变量值的简单赋值,深拷贝会复制对象的成员变量以及指向的资源,包括指针指向的数据这确保了原对象和拷贝对象拥有彼此独立但内容相同的资源副本。关于深浅拷贝更为清楚的解释请移步👉C++——拷贝构造既然拷贝分为深浅拷贝,那么我们的赋值运算符重载也应该分为值拷贝、址拷贝例如对于Date类,

2023-11-04 23:36:53 172

原创 C++——类和对象之拷贝构造

要知道如何正确的定义拷贝构造,就需要先对浅拷贝和深拷贝。

2023-11-01 00:03:03 190

原创 C++——类和对象(构造函数与析构函数)

构造函数没有返回值(不需要写void构造函数的函数名与类名相同构造函数支持函数重载构造函数可以没有形参,形参可以都是缺省参数,也可以不是缺省参数例如,对于Dateclass Datepublic ://方式一:_day = day;//方式二:Date()_day = 30;//方式三:_day = day;int _month;int _day;一般建议将构造函数的形参设置为全缺省参数析构函数的函数名为析构函数没有返回值。

2023-10-30 17:58:54 93

原创 Linux——文件权限属性和权限管理

本章思维导图:注:本章思维导图对应的Xmid文件和.png文件都以传到“资源”

2023-10-28 16:00:30 744 2

原创 C++——类和对象(了解面向过程和面向对象、初步认识类和对象、类大小的计算、this指针)

在C语言中,我们有struct类型,我们称之为结构体。int* st;int top;但是,C语言的结构体有如下的局限性定义结构体变量时,类型名太长。例如我们要定义上面的结构体类型的变量st1结构体内只能声明变量,而不能声明和定义函数可以在struct里面声明和定义函数。_top = 0;exit(-1);_st = tmp;//仅为了展示C++struct里面可以声明和定义函数//故其他功能不做展示int* _st;int _top;在C++中,我们就称用。

2023-10-26 21:49:11 178

原创 Linux新建用户、删除用户以及用户之间的切换

学习之前,我们需要了解一个Linux的基本常识:Linux系统root超级管理员非root普通用户在Linux系统的目录中,root账户有一个专门的目录/root,而所有的普通账户的目录都存放在家目录/home中。

2023-10-25 23:24:26 2300 2

原创 C++特性——auto关键字、范围for、指针空值nullptr

本篇是关于C++特性的最后一篇。在前面我们学习了C++引用、I/O流、inline内联函数等诸多特性。如果感兴趣,可以看看:👉C++特性——命名空间、I/O流以及缺省参数👉C++特性——引用与指针详解👉C++特性——inline内联函数在写代码时,我们常常会遇到定义变量时变量的类型名太长的情况,例如:我们发现,变量、的类型名实在是太长了,有没有什么办法解决呢?C++引入了这个关键字来解决这个问题。关键字可以自动识别变量的类型。例如:output:1.2 关于auto关键字的细节使用关

2023-10-24 13:40:09 184

原创 C++特性——inline内联函数

inline内联函数是C++专门针对C语言宏函数的缺陷而设计的。其既具有宏函数没有函数调用开销,所耗时间少的优点;同时也基本上解决了宏函数不安全、难以调试的缺点。其功能不可谓不强。然而内联函数也有较大的局限性:其只适用于代码简单、且频繁调用的函数。而对于递归、有大量循环的函数则不适用。内联函数只是对编译器的一个建议,到底才不采用取决于编译器。内联函数的声明和定义最好放在一起。

2023-10-21 20:26:58 231

原创 Linux——shell外壳程序

在学习Linux的过程中,我们不免会发出疑问,下图的字符串到底是什么?实际上,上面那一串等待我们输入指令的字符串就叫做命令行解释器而命令行解释器的背后有一个程序,它用来接收用户输入的指令,并执行由用户到内核,再由内核返回到用户的翻译工作这个程序就叫做shell外壳程序经过本次的学习,我们可以做出如下的总结shell外壳程序是一切外壳程序的统称shell外壳程序是连接用户和系统内核间的桥梁shell外壳在方便用户和内核交互的同时也在一定程度上保护了内核的安全。

2023-10-20 19:51:27 718

原创 C++特性——引用与指针详解

(例如,如果。

2023-10-19 00:13:51 377

原创 Linux常见基本指令合集及其效果展示

首先先问大家一个问题:在磁盘上建一个空文件,这个文件会占据磁盘的储存空间吗?实践出真知,我们发现新建一个文本文档,它的大小是0kB,这时有小伙伴就会认为既然它的大小是0KB,那么它当然也就不会占用磁盘空间咯。然而真的是这样吗?我们打开这个文件的属性来一探究竟:我们发现系统不仅记录了这个空文件的大小,同时还有它的文件名、文件类型、所在位置、创建时间等信息,难道这些信息不要占用系统空间吗,当然要!一个空文件同样会占用系统空间文件 = 文件内容 + 属性路径的本质就是这颗多叉树的搜索路径。

2023-10-17 17:35:43 314 2

原创 C/C++陷阱——临时变量的产生和特性

int a = 1;当用整形变量a初始化浮点型引用b时,涉及到了隐式类型转换,那么中间就会产生一个double型临时变量来临时存储a的值,但由于临时变量具有常性,其权限不能被放大,因此这句就是错误的。我们应该改为**确保权限不变**。本篇完。

2023-10-16 17:06:35 909

原创 C++特性——命名空间、I/O流以及缺省参数

可以认为,C++的语法和语义基本上包含了C语言的所有内容。二者之间的关系大致可以用下图表示:同时,C++在C语言的基础上引入了许多额外的特性和概念,下面,我们就来学习C++有而C语言没有的特性。

2023-10-14 11:17:06 184

原创 C/C++陷阱——变量名和函数名的冲突问题

而。

2023-10-14 11:07:49 455

原创 二叉树的常见操作

原来,我们将size定义为了静态变量,当计算完B这棵树的节点再调用函数计算A树的结点树,size的大小已经为3了,这样最后得到的size就为8,显然错误。举个例子:树A的左子树是树B,右子树是树E,此时size为3,树B的左子树是树C,右子树是树D,此时size为5,C、D、E的左右子树都为空树,因此size为5。这么做好像是可以,但如果考虑到多线程的情况,如果两个线程同时调用这个函数,那size的值必定会被改变,因此将size定义为静态变量是行不通的。时,第k层节点的个数就是第n层节点的个数。

2023-10-01 21:53:40 129

C++思维导图Xmind文件和.png文件(持续更新)

C++思维导图Xmind文件和.png文件: 构造函数与析构函数思维导图Xmind文件和.png文件 拷贝构造思维导图xmind文件和.png文件 运算符重载思维导图xmind文件和.png文件 初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类思维导图xmind文件和.png文件 内存管理(new/delete使用详解) 模板——初识 STL——string类 STL——vector STL适配器——stack && queue STL——list C++——继承 C++——搜索二叉树 C++——AVL树 C++——红黑树

2023-10-30

Linux知识点思维导图(持续更新)

Linux——文件权限属性和权限管理 Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作 Linux——编译器gcc/g++、调试器gdb以及自动化构建工具makefile&&make详解 Linux——冯诺依曼体系结构 Linux——操作系统与进程 Linux——进程地址空间与进程控制 Linux——环境变量与本地变量 Linux——进程程序替换 Linux——shell程序简单实现 Linux——系统文件IO Linux——磁盘文件

2023-10-28

空空如也

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

TA关注的人

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