自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。

2023-12-12 11:11:03 286

原创 C++内联函数

2.inline对于编译器而言只是个建议,不同编译器关于inline实现机制可能不同,一般建议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部的实现),不是递归,频繁调用的函数采用inline修饰,否则编译器会忽略inline特性。1,inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。一般来说,内联机制用于优化规模较小,流程直接,频繁调用的函数。

2023-12-03 23:04:45 144

原创 C++引用

以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低。引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用一块内存空间。引用在语法概念上就是一个别名,没有独立空间,和其引用实体共用同一块空间。注意:引用类型必须和引用实体是同种类型的。例:下面代码输出什么结果?

2023-11-21 19:03:20 191

原创 【数据结构】堆的顺序结构及实现

如果有一个关键码的集合K = { k0,k1 ,k2 ,...,kn-1 },把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足: kn=k2*n+2 ) i = 0,1, 2...,则称为小堆(或大堆)。,这里先找到左右子结点中最大的结点(最小的结点),然后与子结点进行比较,如果符合条件就进行交换,不断重复上述过程,然后当子结点的数组下标大于等于数组的元素个数就结束。这里与其他销毁完全一样,不再叙述。

2023-09-18 18:42:33 200

原创 直接插入排序与希尔排序

排序:所谓排序,就是使一串记录,按照其中的某个或某些或某些关键字的大小,递增或递减的排列稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对顺序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

2023-08-31 17:50:54 370

原创 【数据结构】初识树

树有很多表示方法:双亲表示法,孩子表示法,孩子双亲表示法以及孩子兄弟表示法等。好了,到这里会有对树有着基本的概念了,下一篇将深入讲解,希望能对大家有帮助!二叉树一般可以使用两种结构存储,一种顺序结构 ,一种链式结构。二叉树(Binary Tree)是一个由结点构成的有限集合,这里以孩子兄弟表示法为例。

2023-08-30 12:00:00 139 1

原创 一篇文章带你实现队列的接口

队列是只允许在一段进行插入,在另一端删除的线性表。允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的修改是按照先进先出(First In First Out, FIFO)的原则进行的。

2023-08-26 18:02:56 442

原创 一篇文章带你实现栈的接口

栈(Stacks)是限定在一端插入和删除的线性表。允许插入和删除的一端称为栈顶(Top),另一端称为栈底(Bottom)。栈中的数据元素遵守后进先出(Last In First Out)的原则。因此,栈又称为后进先出(先进后出)线性表。压栈:栈的插入操作叫做进栈、压栈、入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2023-08-11 19:10:55 142 1

原创 动态内存管理

用户调用free可以释放结构体,但是用户并不知道这个结构体内的成员也需要free,所以你不能指望用户来发现这个事情,所以,如果我们把结构体的内存以及其成员要的内存一次性分配好了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了,这时就需要动态内存函数开辟空间了,动态内存函数有 malloc , free , realloc, calloc,这些函数都存放在堆区。

2023-08-10 17:42:15 109

原创 力扣单链表必刷题(1)

先将cur1指向的数与cur2比较,小的尾插到tail后面,然后刚才比较小的链表cur向后指向一位,依次重复上面的步骤,直到有一个链表结束的时候停止,第一次尾插的时候,没有哨兵位需要将cur指向的值赋值给head,tail,来当做新链表的头结点和尾节点。开始让n1指向空指针,n2指向第一个的位置,用n3标记n2下一个节点的位置,让n2的下一个节点指向n1,然后让n1指向n2所指向的地址,n2指向n3 所指向的地址,最后让n3指向下一个节点的位置(当n3指向空时就不在执行这一步)。思路二:取节点插到新链表。

2023-07-01 18:29:33 86

原创 线性表之单链表

2.带头双向循环链表:结构最复杂,一般用在单独存放数据。实际中使用的链表数据结构,都是带头双向循环链表。实际中更多是作为其他数据结构的子结构,如哈希桶,图的邻接表等等。概念:链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表分类有单向或者双向,带头或不带头,循环或者不循环。但常用的有无头单向非循环链表和带头双向循环链表。接口的具体实现,我们在程序中注释,哪点有不懂的评论区可以解答。我们将库文件,单链表的定义,接口的声明,放在头文件。

2023-04-25 13:28:37 86 1

原创 用双指针法解决数组问题

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。两个指针都指向起点,用一个指针判断是否是val值,如果是将scr进行加一,否则将下标是scr的值赋值给下标是dst的值。给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

2023-04-23 14:38:17 150

原创 线性表之顺序表

是一个整数变量,其值描述调用库函数生成的错误条件或诊断信息(C 标准库的任何函数都可以为 errno 设置值,即使未在此参考中显式指定,即使未发生错误),有关详细信息,请参阅。线性表在逻辑上是线性结构,连续的,但在物理结构上不一定连续。在顺序表最后创建一个空间,从最后开始,将前一位赋值到后一位,直到前一位小于pos停止。线性表是n个具有相同特性的数据元素的有限序列,常见有:顺序表,栈,队列,字符串等。从pos的位置开始,将后一位赋值到前一位,直到后一位是最后一位停止。从前面开始,将后面一位赋值该前一位。

2023-04-18 12:00:00 100

原创 初识C++(命名空间,缺省参数,函数重载)

另注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2023-04-15 22:08:27 68

原创 一篇文章带你走进结构体,枚举,联合

这一篇讲解了结构体,位段,枚举,联合的使用,这些知识在编程中应用比较广泛的一类,虽然不是太难,但是有很多陷阱,比如结构体的内存对齐,位段的内存分配,联合大小的计算等等。但这些只要细心,在以后的编程路上也都不是难事。好了,先来一张美图直接开始。int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋值struct Stu //声明类型int age;//初始化int date;//结构体嵌套初始化。

2023-02-20 15:17:05 155 2

原创 C语言排序:冒泡排序 , qsort函数

前言这篇文章中你能学习到冒泡排序的思想,以及它的实现方式。了解到qsort()函数的使用,以及怎么用冒泡排序的实现模拟实现qsort()函数。这篇文章需要掌握一定的指针知识,如果有不够熟悉指针的朋友可以看看我往期指针的文章,有助于加深理解。

2023-02-11 19:54:07 153

原创 详细分析各种指针(烧脑专用)

在这篇文章中,你将收获各种指针的使用,例如指针传参,函数指针,函数指针数组等等,这些会加深你对指针的了解,不过对于初学者来说,这篇确实有些烧脑了。先来一张美图,开启燃烧你的cpu吧。

2023-02-01 21:46:54 206 2

原创 7道题,讲透整形在内存中存储的原理

这一篇练习题继承了上一篇内容的核心,算是上一篇的实战,并且这几道练习题更能加深你对数据在内存中存储的理解。好了,话不多说,先来一张美图直接开始!

2023-01-11 21:42:52 138 1

原创 深入解剖数据在内存中的存储

这篇我们讲数据在计算机内部是怎么存储的,数据在计算机内部是怎么计算的,掌握了这些,会进一步增加我们对计算机的理解,在编程中,有些计算数据的错误,很可能和数据在内存中的存储有关。好了,话不多说,来一张美图直接开始!C语言中有很多数据类型:例如:int(integer的简写)型变量可以存储整数,如1,23,456等;float(floating-point的简写)型变量可以存储带有小数点的数,如:3.14,6.18等。

2023-01-09 21:29:32 149 5

原创 C语言扫雷小游戏(超详解)

这次我们练习一个扫雷小游戏,这次涉及的知识主要是二维数组(当然如果对数组不熟悉的话可以看这篇讲数组的文章:)。扫雷游戏相信我们大家都很熟悉吧,多练习这样的小游戏,小项目都有助于提高我们的代码能力。话不多说,先来张美图,直接开始!

2023-01-03 10:24:30 338 7

原创 【C语言】指针详解

有些人总觉得指针特别难,特别是刚入门的人听一些大佬说指针好难啊,其实指针就是纸老虎,当我们静下心慢慢学,多敲敲代码,用代码理解,指针也会非常容易学会,这里指针我将分两部分讲,适合新手的内容我将放在这里讲,剩下一部分难点我将在进阶中讲。话不多说,先来一张生活美图,直接开始!

2022-12-01 14:33:53 271 1

原创 【C语言】操作符,看这一篇就够了

C语言的操作符也挺多的,很多时候我们要用到的时候,总有那一两个在我们脑中很模糊,为此,我直接写一篇C语言涉及的操作符的合集来解决这个问题,希望这篇能对于老手能再加深印象,对于新手算是一次成长。好了,话不多说,来一张美图,直接开始。

2022-11-21 14:00:59 132 4

原创 三子棋游戏(超级详解,附加电脑下棋优化)

继上一次的猜数字小游戏以后,我们再来个更加锻炼一个逻辑的游戏,这个游戏比上个代码多,但很能考验我们的逻辑能力。逻辑能力上来了,以后做项目,编写程序的时候就不会太吃力。话不多说,先来一张美图,直接开始。

2022-11-16 20:55:38 3529 5

原创 【C语言】数组超详解(一维,二维)

学习编程,有些知识画图比较容易理解,我们也要学会画图分析,这样更能加深我们的理解。下面我就用图和代码注释的方式来讲解数组这部分的内容,当然还有一些柔性数组,指针数组,函数指针数组这些稍有点难度的指数我会放在进阶讲。接下来的几篇文章会跟你们讲解数组的练习实例,例如三子棋,扫雷。话不多说,先来一张美图,直接开始。相同类型)//type_t 是指数组的元素类型//arr_name 是指数组的名字//const 是来指定数组的大小,一般是常量表达式,但在c99中某些编译器可以用变量指定,但数组不能初始化。

2022-11-07 14:20:16 953 5

原创 【恶搞向】教你如何做一个关机程序

咱们在不停的敲代码的同时,感觉到很无聊了,也是可以敲点不一样的程序送给好友放松放松,哈哈~话不多说,来一张美图,直接开始。int main(){//执行shutdown(关机)程序,时间是150秒以后angin:printf("电脑将在1分钟30秒后关机,如果输入:我是猪,就取消关机!\n请输入:");if (0 == strcmp(input, "我是猪")){//shutdown -a (取消关机命令)}else{

2022-09-02 22:03:28 1396 4

原创 C语言猜数字游戏(超级详解)

学习编程,最重要的就是实践,多敲代码,懂得再多的东西,终究还得是转化成代码才能带来效益,而编写小游戏也是一种值得我们上手练习,巩固知识的好方法。话不多说,先来一张美图,直接开始。...

2022-08-29 13:39:14 8484 4

原创 getchar清理缓冲区

要想解决这个问题,就得清除缓存区了。下图又加上了清楚缓存区的代码,运行结果就正常了.看看下面的例子就知道了。为什么要清理缓冲区呢?

2022-08-23 20:04:42 996

原创 原码,反码,补码以及大小端字节序

什么大端小端:大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地 址中。为什么有大端和小端?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit。...

2022-08-09 18:05:25 1165

原创 C语言初阶总览 (下)【新手入门】

C语言初阶将分为三部分讲,这是第三部分,三部分看完你将对C语言有个大概的观念,这三部分只是初阶,特别适合新手入门,后面也会更新进阶。

2022-06-12 12:44:01 109

原创 C语言初阶总览 (中)【新手入门】

C语言初阶将分为三部分讲,这是第二部分,三部分看完你将对C语言有个大概的观念,这三部分只是初阶,特别适合新手入门,后面也会更新新进阶。

2022-06-09 15:47:49 130 1

原创 C语言初阶总览 (上)【新手入门】

C语言初阶将分为三部分讲,这是第一部分,三部分看完你将对C语言有个大概的观念,这三部分只是初阶,后面也会更新新进阶。

2022-06-06 15:09:07 202

空空如也

空空如也

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

TA关注的人

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