自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面向对象的三大特性理解

如上图所示,画的就是多继承多态的原理(单继承只是这个简单版,原理都是一样的),每一个类里面都会包含一个虚基表指针数组,继承的时候也会继承下来,当派生类有虚函数和基类的虚函数一样的(名字相同,但是内容已经发生了重写),这时派生类就会在继承下来的那个类的虚机表当中,对这个虚机表指针进行修改,改成派生类里面的对应虚函数,这时当不同的类调用相同的函数时,就会产生不同的功能,展现不同的形态了。简单来说,就是不同的类实例出来的对象,在进行调用相同的函数时,可能会行使不同的功能,展现出来不同的“形态”。

2023-04-24 09:57:04 81

原创 继承的理解

对于C++当中继承的系统性理解

2022-12-03 11:21:46 177

原创 List迭代器的理解

对于list的迭代器有一个更好的理解

2022-11-23 09:35:19 480

原创 数据结构的排序——2.希尔排序

1.前言 和上面的直接插入排序一样,希尔排序也是一种插入的排序,更加准确的来说希尔排序是直接插入排序的一个升级版,是在直接插入排序上进行修改然后效率更高的一种插入排序。2.原理介绍在直接插入的排序当中,没一次都是后一个数和前一个数进行比较,满足条件的话就加一,然后再是后一个数与前一个数比较.....直到执行结束后退出。执行的间隔是1,而再希尔排序当中,执行的间隔是大于1的数,本次当中我们设定的间隔是5(这个间隔数定在1到数据的总和之间),如下面的图所示,在下面的10...

2021-12-26 20:02:52 512

原创 二叉树建堆(向上调节建堆+向下调节建堆)

1.介绍 建堆在二叉树当中有着非常重要的地位,尤其是在堆的排序当中,其中对于堆的建立过程当中又分成向下对堆进行调节和对堆作向上调节。这两种地位相当,在许多的地方各自又有相当重要的存在。本文重点讲述这两种方式来进行建堆,为后续的堆排序做一个重要的基础。2.1.向上调节建堆********************************向上调节和向下调节是 分两次写的,所以这两种形式里面的一些函数可能会有一些不同哦******************************首先我...

2021-12-10 21:12:27 722

原创 TopK问题的实现(C语言版)

1.介绍 我们可能经常会看到这样的一个问题,让我们在一组数据当中找到这组数据的前n个数据,这些数据可能是最小前n个数,或者是最大的前n个数。这也就是经典的TopK问题,现在就让我们进入TopK的世界。我们可以将其分成五步来进行1.首先我们可以制造一个TopK验证数据2.先将前n个数据进行建堆3.将剩余的N-n个数据“进”堆4.将最大的前n个数据给筛选出来5.建立大堆将这n个数据进行排序2.TopK的实现2.1.制造一个TopK验证数据int*...

2021-12-05 19:47:43 674

原创 数据结构的排序——1.直接插入排序

1.依次插入排序依次插入指的是在一个有序数组当中依次插入一个新的数据,这样在所有的数据都插入之后,这个数据就是一个有序的数组了。另外依次插入数据排序的思想和我们玩扑克牌时依次拿牌后整理牌的思路很是相似。将其抽象到咱们的排序当中就是如下的思路:例如我们要在2 3 6 8当中插入5这个数据时,我们的排序的思路将是如下面图所示让我们来看看上面的四步排序,我们将尾部的数据数组下标记作end,首先我们将5和尾部数据8进行比较,由于8大于5所以将8和5的位...

2021-11-17 16:58:12 768

原创 数据结构——顺序表(SequenceList)

1.何为顺序表线性表的顺序结构表示指的是用一组地址连续的存储单元依次存储线性表的数据结构。2.顺序表组成顺序表可以看作是一组连续存储的有限的数组结构,我将其表示成一个结构体类型,其中这个结构体的类型里面由三个部分组成,实时大小size,容量大小capacity,头部指针Head。由下图有进行表示其中这里面比较重要的就是每个数组里面所存储的部分,这个存储的部分可以由每一种数据类型所组成(单每一次所存储的必须是同一类型),例如整型,字符型,浮点型,结构体类...

2021-11-04 16:35:40 884

原创 时间复杂度和空间复杂度

复杂度同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进法。其中算法复杂度分为:时间复杂度和空间复杂度。 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。算法的时间复杂度和空间复杂度是一个函数,它定性描述了该算法的运行时间和所占的空间。这是一个关于代表算法输入值的字符串的长度的函数。1.时间复杂度时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行...

2021-10-16 11:43:33 95

原创 C语言的整型提升

在讲这篇文章的开始,我们先来看一下下面的这段代码->#include<stdio.h>int main(){ char a = -1; signed char b = -1; unsigned char c = -1; printf("%d\n%d\n%d\n",a,b,c ); return 0;}首先我们来看看他的打印结果:在这里我们或许有一些疑问,有符号和无符号有什么区别吗?,a,b,c都是字符类型的,打印可以用有符号的整型进行打印吗?这就引.

2021-08-21 09:47:38 882

原创 C语言的分支与循环结构(下篇)

可能大家会问,我们在经过了if语句了,为什么还要再来使用循环语句,细心的大家可能已经发现,if语句虽然很好,但是每一次只能执行一次,如果我们要多次循环的进行执行,就需要我们使用循环语句来进行探讨。1.循环结构其一__While语句 从上面的循环原理图我们可以看出,While循环是先进行判断,然后当判断通过的时候,才能进入到循环模块当中进行循环。注意:如果当判断不通过,该循环结构可能一次循环也不执行。2.循环结构其二__for语句...

2021-08-14 15:50:51 111

原创 C语言的分支与循环结构(上篇)

当我们接触C语言的时候,首先就会接触到分支和循环结构,其中分支代表着选择和判断,而循环结构则是代表着将重复有规律的事件变得容易的进行控制下来,因而他对于一名程序人员来说是至关重要的,下面我们就来介绍一下这里面的分支结构。分支结构之一——if语句 关于if语句,我将其分成两个大的部分,首先我们来看第一种情况第一种:上面的这一种,有两个if语句后者多个if语句,然后只有一个else语句,在这种情况之下,这个分支结构的主体在if语句当中,if...

2021-08-12 16:32:05 140

原创 变量的作用域+常量

1.变量的作用域当我们刚开始学习C语言的时候,可能一开始就会遇到一个问题,变量的作用的范围是多少呢?我们来用下面的图一来进行表示;图一2:常量图二

2021-07-17 21:56:44 94 1

空空如也

空空如也

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

TA关注的人

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