- 博客(46)
- 收藏
- 关注
原创 C++13:搜索二叉树
我们在最开始学习二叉树的时候,最开始接触的就是堆,但那个结构上并不是真正的二叉树,后来又借助链表实现了真正的结构上的二叉树,二叉树不仅仅只是在OJ题上刁难我们,其实当实现了一定的节点逻辑之后,也可以形成效率极高的数据结构,这个二叉树就是搜索二叉树。
2023-04-09 11:33:09
589
原创 Unity教程2:保姆级教程.几行代码实现输入控制2D人物的移动
没有控制人物移动的2D游戏就太说不过去了!那么接下来,这篇文章将会以简单的几行代码轻松的教会你实现2D人物的移动,不必担心看不懂代码,我将会查询API手册以保姆级教程来帮助你理解!那么我们开始吧!
2023-03-15 22:25:46
5680
原创 Unity教程1:如何切割我的图片素材并使用tilemap搭建游戏背景(Pixels Per Unit设置不合适问题)
尽可能的详细记述如何使用Tile Palete以及规则瓦片,如果你也喜欢2D像素艺术以及对场景搭建感兴趣,欢迎点进来看看
2023-03-11 15:40:00
10409
5
原创 C++12:多态
不同的对象执行相同的动作的时候产生不一样的效果,这一点有一点像函数重载,但是不一样的是我们控制的是传入的参数,而不是不同的对象。我们其实可以将这个行为形象的理解为"双标"。以“买东西”为例,不同的人购买商品的时候可能会因为身份的不同导致付出的金钱也不相同。那么如何实现多态呢?子类实现多态时,其实现多态的函数,但是这是一种不太好的行为,我们能加上就加上。
2023-03-07 09:29:22
293
1
原创 C++11:继承
继承的这个复用功能如果去细品会发现它还是能节省不少工作流程的,我们仅需要一个主体框架,当我们需要以这个框架为基础生成更加多功能的组件或者说类的时候,复用就会变得方便许多,毕竟我们不需要再回头去改类内部的成员变量函数什么的。
2023-03-02 11:17:54
691
原创 C++9:优先级队列以及仿函数和反向迭代器
优先级队列的本质其实是一个堆,具体到底层的数据结构其实是有数学关系所形成的一个类似二叉树的结构至于其优先级的这个特性,跟大堆小堆的性质是相同的,只不过它使用了仿函数来控制生成大堆还是小堆。
2023-02-26 10:01:18
598
原创 C++的容器适配器
双端队列出现的契机则是为了应对list以及vector的短板,vector随机访问效率高但是头插头删效率低下,list随机访问效率低但是头插头删效率高,它们各有优缺,此时为了应对普遍情况,一个中庸却实用的数据结构deque出现了,它虽然没有两者的缺点,但是也没有两者的优点,在作为stack以及队列的基础容器的情况下变得非常适用。但是它本身的结构非常的复杂,这里就不记述了。在STL中,队列和栈的实现都是基于其他的容器所实现的,因为其本身的数据结构需求并不复杂,而且能复用的话为什么不呢?
2023-02-23 15:55:22
117
原创 C++8:模拟实现list
list容器的本身其实是一个双向带头循环链表,具体的结构其实并不复杂本人曾在学习数据结构时有所记述,有需要的读者可以跳转至这篇文章那么既然是一个链表,那就少不了节点指针以及节点结构,模拟实现list也需要套入模板,那么我们先实现一个最基本具有数据存放功能的链表来试试看。
2023-02-20 09:17:49
403
原创 C++7:STL-模拟实现vector
根据以上的模拟实现,我们基本上了解了vector的基本结构以及接口的使用,其本质不同于顺序表,为了服务于自定义类型以及泛型变成,成员变量是迭代器,而迭代器的本身则是类模板参数,实现并不算困难但是细节还是需要额外处理。希望对你有点帮助!
2023-02-13 17:07:27
510
原创 C++6:STL-模拟实现string
string时STL中的模板库之一,类似于专门处理字符串的数据结构,在模拟实现并探讨其中构造的巧妙之处之前,我们短浅的认识一下STL是什么。
2023-01-24 16:03:18
838
4
原创 C++5:初见模板
虽然学习了类和对象,能很方便的处理一些容器类的问题,但是我们还是会遇到如下这种情况。我们创建一个简单的stack类我们单独处理int类型需要使用栈结构的时候还好说,假如我们需要使用double或者其他类型的变量时,操作会变得很难受,复制一段改数据类型吗?代码变得膨大不说还难以管理,诚然我们可以使用typedef来方便修改,可是每一次运行都要更改还是挺蛋疼的。所以为了应对一些函数仅仅只是传参数据类型不同,但是逻辑相同而需要重载函数的情况,C++给出了模板。用起来嘎嘎顺手,嘎嘎好用。
2023-01-15 16:37:03
329
原创 C++4:C++中的动态内存管理
而malloc和free则不会。malloc过大的空间的时候会直接崩溃,而new则是抛异常,由于牵扯到多态和继承的问题,不记述。示例:
2023-01-05 11:32:10
916
3
原创 程序环境和预处理:编译器做了些什么?程序到底是怎么运转起来的?
编译器其实可以概括为一位翻译官,我们输入的高级语言在经编译器之手后才能变成机器看得懂的语言,机器才会帮助我们计算我们想要的答案,好比我们闭着眼睛就能写出来的“Hello World”,其中编译器的活要干的还真的很多,接下来则是编译器在与机器“交流”的过程简述,其本身内容其实有非常多细节,如果有机会我会尝试整理一篇更加完整的过程,在这里我们只需要知道编译器大概干了些声明就好。
2022-09-23 16:56:01
553
2
原创 C语言存储数据方式概述
C语言中,数据存储的概念非常重要,清楚的了解存储的规则可以很好的帮助我们在写代码的时候排除一些BUG,以下则是对C语言数据存储的概述。
2022-06-06 16:14:39
1161
1
原创 操作符详解
在C语言中,操作符的功能以及使用还是非常重要的,以下则是部分操作符的详解。算数操作符 + - % / * 分别为加法,减法,取余数,除法,乘法。一些细节:1.以上几个操作符中,除了%以外,其他的操作符的操作数都可以是整数或者浮点数,只有%的操作数只能是整数。% 操作符的两个操作数必须为整数。返回的是整除之后的余数。2. 3/2等于多少?不是想当然的1.5,而是1,当/左右两边的操作数为整数时执行整数除法,而是浮点数.........
2022-06-06 10:36:21
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人