自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 map和set的封装用红黑树

迭代器。迭代器的作用——容器的类型有很多种但是不是每一个容器的取值方式都是一样的。比如说list是箭头->和解引用*的方式,string则是通过方括号的方式访问的。所以为了统一的访问这些容器所以我们就设置出了迭代器。统一用一种方式这里是,箭头->和解引用*的方式。迭代器里面就是存一个节点或一个数据的指针,通过一些运算符重载方式进行统一。所以我们可以理解迭代器成“指针”,但是迭代器本质还是一个类。我们用模版去实现。第一个参数T是RBNode中的唯一模版参数,传进来是为了在迭代器中有效储存数据。

2024-08-16 21:25:18 724

原创 AVL的代码剖析(c++)

AVL树是一棵二叉平衡搜索树。当向二叉搜索树中插入新的结点,如果能保证每个结点的左右子树高度之差的绝对值不超过1,那么此时就是二叉平衡搜索树。

2024-08-11 15:23:16 894

原创 什么是二叉搜索树,以及如何实现二叉搜索树的增删查代码

搜索二叉树是在二叉树的基础上构成的所以二叉树的节点是我们可以在此基础上进行优化。我们可以思考二叉树中的_data一定是为int类型的吗?不一定可能是char可能是其他,所以为了兼容性使得代码的更加全面。我们可以使用模版。为了方便维护我们借鉴list的思维,再创造一个类BSTree来存放BSTNode节点。将节点和树分开来。

2024-07-20 11:48:19 1041

原创 (c++)virtual关键字的作用,多态的原理(详细)

virtual 修饰的函数有两种,一个是虚函数,一个是纯虚函数。

2024-07-16 23:03:43 635 2

原创 栈与队列的实现逻辑以及底层代码

栈和队列不是一种语言独有的结构,而是一个由代码语言设计的一种数据结构。是由人设计出的一种具有特定意义的结构。

2024-03-27 12:47:14 898

原创 【c语言】【visual studio】使用malloc,calloc,realloc报错,来看看你是不是中招了。

引言:对于刚刚学习动态内存开辟的同学,在使用这些函数时难免不小心就犯错了,编译器报错时,也不知道错在哪儿,这篇文章将给你带来一些常见的不小心犯的错误。

2023-12-12 22:53:07 753 1

原创 【c语言】【visual studio】动态内存管理,malloc,calloc,realloc详解。

以上希望能够帮到你,让你对动态内存管理有跟深的理解。

2023-12-11 23:09:05 2413 3

原创 【c语言】【visual studio】带你一步一步轻松了解 int 类型以%f输出,char 类型以 %d输出,float类型以%d输出等等是如何输出的。

引言:看本文章之前,还需了解数据在内存中的是以二进制的补码存储的,以及整型和浮点型的存储方式的不同。(具体可看这篇博客)规则:数据存储拿取步骤(以x86环境为例)存a存储1.先都是32位二进制存储。——按存储规则存储。拿出2.看放置类型,若是char类型只拿低位8位,若是short 只拿低位16.放到类型中——看放置类型,拿取低位位数提升3.整型提升提升为32位。提升原则:看a的类型是什么,有符号高位添加符号位至32位,无符号高位添加0至32位。——看放置类型,整型提升打印。

2023-12-04 16:00:54 902 5

原创 【c语言】【visual studio】带你了解浮点型和整型在内存中的储存方式。

引言:数据是计算机的基础,我相信了解数据在内存中的存储方式后,你会对计算机有一个更加深刻的理解。

2023-12-03 08:49:52 628 3

原创 【c语言】【visual studio】vs的常用调试小技巧

引言:每次当编译器报错时,有些小伙伴会摸不着头脑,不知道错误出在哪里,这里yanlou带你了解一些常见的调试技巧。

2023-11-28 22:59:32 925

原创 【c语言】【visual studio】库函数qsort的使用,以及qsort函数的自定义。

这里以一个整型数组为列 int arr[]={3,5,1,6,79,3,6,8,10};综上就是qsort函数的使用方式,以及如何实现自定义qsort函数。引言:qsort是c语言中自带的库函数,需要包括头文件。//注void* 类型的指针不能进行解引用操作。功能:实现任意数组的排序。

2023-11-27 07:00:00 1034 1

原创 【c语言】【visual studio】元素交换的三种简易方法。

1.“空瓶”交换法。2.加减交换法。3.异或交换法。

2023-11-26 10:30:00 542 2

原创 【c语言】【visual studio】几道指针笔试题带你深入理解指针。

答案:解析:&a的类型是数组指针拿到的是整个地址,接着(int*)将数组指针强制类型转换成整型指针,用一个整型指针ptr来接收。&a+1,跳过的是整个数组的大小,即prt指向5后面的元素所以的意思是整型指针-1,整型指针-1,拿到的是5的地址,再一解引用得到5.接着单独的数组名是首元素的地址,所以a指向的是a[0]的地址,+1,指向a[1],拿到2的地址,再一解引用得到元素2.答案:解析:为什么都是加1,而结果不一样呢?这里我们只需要知道一点即可,c语言中的加减是根据类型来的。

2023-11-25 16:58:35 1268 7

原创 利用 & >> 操作计算二进制中1和0的个数

(注:&:同为同,不同为0.)下面我们以代码实现下面我以图做解释。

2023-11-19 00:12:20 81 3

原创 rand函数真的是随机的吗?

rand不算是真正的随机而是一种将已经随机的数的模板印刻下来的伪随机数。但是这里我们需要知道的是rand()括号中放的是“种子”,当没有输入值时,默认为1。我们只需要改变种子的数,就可以使rand“随机”起来。如何在c语言中实现输出随机数呢?我们只需调用rand函数就行,但关键来了,rand函数真的随机吗?可是问题又来了,我们要如何使种子随机起来,也就是改变起来呢?有人就会想到,我们人为的修改不就好了嘛。但是很遗憾是不行的,我们通过代码可以知道。时间戳每时每刻都在变我们就可以用此当作种子才实现种子的变化。

2023-11-12 14:32:10 385 3

原创 几分钟带你轻松搞定扫雷代码的原理与实现。

扫雷游戏代码· 憨色第一棒/112期比特 - 码云 - 开源中国 (gitee.com)1.写代码前总体框架。我们需要用代码实现的是棋盘的初始化,雷的布置,雷的排查,周围雷的显示,以及棋盘的打印等代码操作因此我们可以设置四个函数分别实现这些功能,此时我们注意到扫雷代码不包括主函数内容就有五个函数,代码量之多也可想而知,所以为了提高代码的可阅读性,我们创建三个文件game.h文件包括了我们所有我们调用函数的头文件,函数声明,以及我们的宏定义。(这里为什么要设置宏定义,我们后续慢慢道来)

2023-11-05 15:58:06 122 2

空空如也

空空如也

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

TA关注的人

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