自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++——模板详解

模板,就是把一个本来只能对特定类型实现的代码,变成一个模板类型,这个模板类型能转换为任何内置类型,从而让程序员只需要实现一个模板,就能对不同的数据进行操作。

2024-02-29 21:02:34 413

原创 C++——内存管理(new和delete)详解

调用operator new[]函数,在operator new[]中实际调用operator new函数完成对N个对象空间的申请,在申请的空间上执行N次构造函数。的空间,new和malloc,delete和free基本类似,不同的地方是:new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且。,会在前面额外开辟4字节空间,用于存放类对象数组有多少个元素,让delete数组时,调用类的析构函数时知道要调用几次。来在堆上管理堆上的空间,但在c++中进行了更新。

2024-02-29 20:29:59 976

原创 C++——友元

友元是C++提供的一种突破封装(突破类域)的方式,有时提供了便利。但是友元会增加耦合度,但破坏了封装,所以友元不宜多用。友元分为友元函数和友元类。

2024-02-29 17:48:11 420

原创 C++——类的6个默认成员函数

详解C++类中的6个默认成员函数。

2024-02-28 18:30:40 931

原创 排序——快速排序

快排又被称为霍尔排序,其本质类似于二叉树的前序遍历(根->左->右)。

2024-02-25 20:16:37 992

原创 排序——堆排

堆排序过程:先使用向下调整建堆,得到一个小堆或者大堆。向下调整建堆要从最后一个叶子节点开始,也就是最后一个节点的父亲节点。建堆后,我们已经找出了原数组的最值(在堆顶),把它与最后一位元素交换,再对arr数组,除了被交换下去的值,前面的元素所有元素重新进行向下调整,再得到一个堆,再交换,重复操作,直到遍历到数组首元素,再调整完,就说明整个数组已经排序完毕。

2024-02-24 22:57:16 817

原创 排序——选择排序

每次遍历数组时选择最大值和最小值,存储最大值和最小值下标,然后和最两边的数字交换,然后不断地选择,不断地将两边的范围缩小。时间复杂度O(N^2);空间复杂度O(1);选择排序是稳定排序。由于选择排序也比较简单,时间复杂度也比较大,所以很少被我们使用。

2024-02-24 21:34:46 359

原创 排序——希尔排序

希尔排序核心还是是直接插入排序,差别在于直接插入排序就是gap=1,而希尔排序是gap从n/2或者n/3+1开始不断地趋于1,最终gap=1进行一次直接插入排序就完成了。

2024-02-24 21:16:01 916 1

原创 C++——this指针

在使用类函数时,该函数会隐藏一个this指针,它会负责找到我们成员函数中所需的成员变量(成员变量可以是私人的),如下图所示,上面是我们调用时的用法,下面是隐藏的this指针重新加上的效果。在成员函数中使用this指针的时候,可以不用写出来,编译器自己会加上。但我们也可以自己加上this指针。

2024-02-24 19:49:07 389

原创 排序——直接插入排序

核心点:保持前面的数是有序的,后面的数依次与前面的数进行比较然后插入,类似于人类对一打无序的扑克牌排序,原数组越接近有序,所需要的时间复杂度就更少。时间复杂度:O(N^2);只有逆序才会时间复杂度才会是O(N^2),相比比冒泡更优。

2024-02-24 18:25:13 332

原创 排序——冒泡排序

冒泡排序核心点:两个两个比较,不断地把较大或者较小的值往后走,每走完一趟就会把最大的值或最小追放到最后面,然后再把范围缩小。

2024-02-20 12:46:15 345

原创 C++命名空间详解

如果我们只想使用一个域里的某个函数或者变量,就可以用using 命名空间名::函数名/变量名,只展开某个域内的某个函数或者变量,这样就不会让一个域内的全部内容都展开,导致出现全局变量重复的情况。访问命名空间域中的变量时,需要用域作用限定符(::),使用方法为,命名空间名::变量名。,就是展开命名空间,把原命名空间域的锁打开,让其中的所以变量、函数、结构体重新变成全局性的,即不用域作用限定符也能访问到原命名空间域中的内容。它能限制使用的变量的范围,使用方法为,范围::变量名,范围不给时,默认为全局域。

2024-02-18 15:48:35 373 1

原创 二叉树详解

引入树的概念,详解二叉树。

2024-01-06 20:36:21 890 1

原创 循环队列设计解读

接着容易出现错误的点时返回对尾数据,返回对尾数据时,由于我们定义的back是在最后一个元素的后面,所以我们要返回back-1位置的数据,但是back-1是有可能造成数组越界的(就是back=0时),所以要分类讨论。如下图所示,这时就不能用back%k得到循环队列满了的条件了,必须用(back+1)%(k+1)==front来判断,也就是(back+1)%sz==front。循环队列的大小,就由我们传输进来的值来确定,但要注意:我们要开辟k+1个空间,用于计算循环队列是否满了的问题。

2023-12-18 19:40:50 393 1

原创 堆的概念和实现

堆的实现

2023-12-17 22:55:15 380 1

原创 C语言结构体详解

本篇文章会介绍C语言中结构体的详细内容,以及结构体中最重要的部分(内存对齐)

2023-10-06 22:13:11 71 1

原创 C语言中的内存函数

本章内容,小编会简单介绍并模拟实现部分C语言中的内存函数,别是:Memcpy、Memmove、Memcpy、Memset。

2023-09-21 17:04:19 45 1

原创 C语言的数据在内存中的储存

首先我们要知道C语言的数据类型有两种,第一种是。

2023-09-02 11:21:58 68 3

原创 C语言扫雷

用C语言还原童年扫雷小游戏,全部代码内容加设计思路。

2023-08-08 19:16:11 105 3

原创 C语言创建三子棋小游戏(可扩展棋盘)

用C语言实现三字棋(思路讲解+代码+代码详解+)

2023-07-27 19:57:20 91 1

原创 C语言实现汉诺塔问题(函数递归)

C语言实现汉诺塔问题(函数递归)带你了解汉诺塔问题如何用递归去解决

2023-07-25 22:48:13 211 4

原创 查找0~999之间的水仙花数

首先我们要引入水仙花数的概念:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。由于水仙花数的特性,我们只能从100开始。再定义g:表示个位。z:表示个十百三个位的立方的总和(最终,总和z要与我们的a进行比较)

2023-07-04 11:22:58 185 4

原创 总结:printf打印时需要的格式字符(占位符)

打印无8进制符号的8机制整数:%o,也可以在%o之前加上l,%lo表示以8进制打印long型的整数,与%d的使用方式相同,%llo表示以8进制打印long long型的整数。打印指数计数法的浮点数:%e,%e可以加上l,%le与lf用法一致(如果系统支持十六进制格式的浮点数,可以用%a来打印,&la也与%lf用法一致)在C语言中,printf有许多不同的打印格式,这些格式都是我们需要去了解的,下面我将简单讲解一下需要打印不同的类型时,%后面需要加的字母。打印有8进制符号的8机制整数:%#o。

2023-06-20 20:27:28 4464 4

原创 C语言中的数据类型关键字

了解一下C语言中的数据类型关键字

2023-06-12 15:29:43 729 1

原创 初识编程,初入CSDN

大家好,我是一名专升本成功后即将步入大三生活的代码小白,这也是我首次注册CSDN并且写一篇自己的博客。都说一入代码似入海,学习代码是一个长久的过程,那最重要那必然是坚持。代码有很多种类,虽说我入坑较晚,但我通过观看网上相关代码内容,了解下来,最终还是选择了c语言作为我刚开始进入的起点(毕竟C生万物嘛),决定之后通过从c开始,后续去了解更多代码相关知识。

2023-06-11 10:49:27 143 4

空空如也

空空如也

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

TA关注的人

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