自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉搜索树

①如果左树不为空,那么左树中所有节点都小于根节点②如果右树不为空,那么右树中所有节点都大于根节点③每一棵子树都是二叉搜索树

2023-05-07 21:57:48 97

原创 模板【初学者必看】

举个栗子:我们写了一个存放整形int的栈,当我们需要一个放char的栈,如果用C语言的写法,我们可能要重新复制一份这个栈的代码,再把其中的int改为char,而如果使用C++中类模板的写法,如上图,我们在main函数中调用了Add(1,2.0),编译器根据第一个实参推导出T为int类型,而由第二个实参推导出T为double类型,这样一来,就像上图这样,由第一个实参推出T1为int,由第二个实参推出T2为int,这样是没有问题的,没发生任何矛盾的情况。的,只是其中的函数参数类型或是类中的成员类型不同。

2023-03-09 22:13:58 125 1

原创 C++内存管理

在用new操作符开辟空间时,编译器是先调用了operator new函数,再调用了对应的构造函数,而operator new函数则是调用了malloc函数,但与C语言不同的是,operator new如果malloc空间失败,就会执行用户的应对措施,如果没有应对措施就会抛异常。,当这个空间越来越少,就会使机器越来越卡慢。在我们平常使用的电脑中确实很难察觉出来,因为我们初学者写的程序大多数都是运行了一瞬间就结束的,但对于服务器等来说,这就是一个致命的问题,因为服务器一般要一直开着,如果出现内存泄漏问题,

2023-03-06 18:04:10 101

原创 C++类和对象【下】

成员变量的定义顺序和声明顺序相同。int b;} };对于上述的A类对象,由于声明顺序是a在前b在后,所以先定义a变量后定义b变量。这个顺序是和初始化列表的变量顺序无关的。

2023-03-02 22:13:48 91

原创 默认成员函数详解

C语言编程中,我们在实现栈、队列等数据结构的时候,总是要手动在实例化它们时调用初始化函数,在不使用它们时调用它们的清理函数(这个忘记调用还可能会导致严重的内存泄漏问题),多少有些繁琐,所以,C++中加入了默认成员函数,一定程度上避免了这些麻烦。这些成员函数编译器会自己生成(也可以由我们自己实现),有了它们,我们就可以不用再自己手动去调用初始化函数了,它会在对象实例化时自动调用,也不用自己手动调用销毁函数去销毁对象,它会在对象生命周期结束时自动调用,等等,极大地方便了编程。

2023-02-14 20:43:26 192 2

原创 C++类和对象【初学者必看】

C++中的类的声明方式很像C语言中的结构体,但与C语言不同的是:C++中的类不仅可以有成员变量,还可以有成员函数(或者叫方法),C++中的定义类的关键字是struct和class,两者差别不大。int b;void f() {} //声明和定义放一起 void f2();//声明 };上述类中,a和b为成员变量,f函数就是A类的成员函数,它可以直接放在类里面,来操作A类的对象。在实际编程中,由于类的声明是放在头文件中的,所以我们最好只在类里面写成员函数的声明。

2023-02-06 18:11:30 142 3

原创 二叉树和堆【超详细】

①对于下标为i的节点:父亲节点下标为(i-1)/2,左孩子节点下标为2×i+1,右孩子下标为2×i+2②建大小堆的区别就在于调整算法时父亲和孩子的大小关系。③向下调整建堆的时间复杂度为O(N)。④堆是一种数据结构,堆排序是一种效率很高的排序方式,时间复杂度为O(N×logN)

2022-12-31 20:03:33 1362

原创 链表【初级】

和C语言中的数组相似,链表也是线性表,但链表在物理存储结构上是非连续的,链表中的每一个单元都通过其所在结构体中的指针与下一个单元所连接。如图,链表中的每一个单元都是一个结构体,结构体中含该单元存储的数据和下一单元的地址,通过这个地址我们就可以访问到下一个单元。像这样的数据结构就像是用了链条把所有的数据链接了起来,所以这样的数据结构我们称之为链表。int data;链表相比与数组而言更合理地使用了空间,数据的增加和删除更方便。

2022-12-22 16:43:33 91

原创 结构体【初学者必看】

在上述代码中,我们就创建了一个名为struct Book的结构体类型,它的成员为字符数组name和整型price。类似于int类型,char类型,上述的struct Book也是一种变量的类型,只不过这是我们自己创建的类型,在我们创建好一个结构体类型后,我们就可以去使用这个类型去定义结构体变量了。这样我们就创建了一个struct Book类型的变量book,初始化时,要赋的值用大括号括起来,之后book里的成员变量会依次被赋予这些值。如果初始化的时候不知道要赋什么值,可以写成:这样结构体里的所有成员都

2022-12-03 17:02:12 333

原创 C语言指针【初阶】

比如说我们创建了一个变量a,那么a就存放在了一块空间中,如果我们知道a的地址,我们就可以通过这个地址来间接地去访问a,并且可以去修改a变量的内容。★在计算机内存中,每一个字节的空间都有其对应的编号,这个编号就是上面说的地址,指针变量存放的是变量首字节的地址。在创建指针变量之前,我们会想到一个问题,就是指针指向的对象有多种,可能是整型,可能是浮点数,也可能是字符类型等等,并且我们知道这些类型所占的空间大小可能是不同的,所以我们应该也会有不同的指针变量类型来指向某一特定类型的变量,来说明指针所指向的变量类型是

2022-12-02 21:51:24 233

原创 操作符详解【C语言】

1.在进行运算操作时(移位操作,赋值操作等),由于内存中存储的是变量的补码,所以实际是在对补码进行操作(整型提升也是对补码提升)。2.无符号数无符号位,如果是要移位操作等,补0。

2022-12-01 21:56:18 637

原创 【初学者必看】C语言数组

在C语言中,数组是一类相同元素的集合。注意,数组中的所有元素必须是类型相同的。我们可以这样理解这个数组:arr和最近的[3]结合,arr[3]表示这是一个数组,数组名为arr,元素个数为3个,除去arr[3]剩下的就是元素类型,即int [4],所以这就是一个含有3个int [4]数组的数组。在讲一维数组时我们说到数组在内存中是连续存放的,所以二维数组中的一维数组也是连续存放的,由此可以推出二维数组中的每一个元素也都是连续存放的。①数组是相同类型元素的有序的序列。

2022-11-25 21:53:33 1113 2

原创 C语言函数【初学者必看】

在C语言中,我们可能会经常用到相同的代码块来解决问题(如用来比较两个数大小的代码块,用来比较字符串长度的代码块),既然这些代码块总是被重复使用,那我们是不是可以把这些代码块简化为一种符号呢,答案是肯定的,这就是函数存在的意义。在C语言基础库中,存放了很多经常使用的函数,这些函数(如printf,scanf等)被称为库函数,使用它们之前,我们需要用#include去包含这些函数的头文件。这些函数的头文件和函数具体实现都可以在CPlusPlus这个网站找到。在实际编程中,库函数并不能满足我们所有需求,这时我们则

2022-11-20 21:10:09 472

原创 1分钟学会C语言中的分支语句

分支语句

2022-11-15 22:47:59 377 1

空空如也

空空如也

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

TA关注的人

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