自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入解析 GPT-4o mini:强大功能与创新应用

OpenAI 推出的 GPT-4o mini 引起了广泛关注。OpenAI 作为一家在人工智能领域具有重要影响力的公司,不断推动着技术的发展。想象一下,当我们能够熟练运用 GPT-4o mini 模型,它可能会帮助我们在短时间内生成高质量的代码片段,为复杂的问题提供新颖的解决方案,甚至激发我们创造出前所未有的应用和服务。比如,有的开发者利用类似的语言模型,快速搭建起了智能客服系统,大大提高了客户服务的效率和质量;还有的开发者借助模型的力量,优化了软件的界面设计,使其更加人性化和易用。

2024-07-25 17:24:06 815 25

原创 【C++】再探构造函数 - 初始化列表详解

C++ 构造函数在 C++ 中,构造函数是一种特殊的成员函数,用于在创建对象时进行初始化操作。构造函数具有与类名相同的名称,没有返回值类型。它可以有参数,以便在创建对象时传递必要的初始值。例如,对于一个Student类,可能有一个构造函数来初始化学生的年龄和姓名。构造函数的主要作用是确保对象在创建时处于有效和合理的初始状态。这有助于提高程序的可靠性和可读性。它可以自动被调用,无需显式调用。通过合理设计构造函数,可以避免对象处于未定义或错误的初始状态,从而减少潜在的错误和异常。本篇博文对初始化列表。

2024-07-23 17:04:32 1361 34

原创 【C++】拷贝构造函数及析构函数

当谈论C++编程语言的核心概念时,拷贝构造函数和析构函数无疑是不可或缺的话题。它们不仅仅是理解对象生命周期和内存管理的关键,更是构建复杂系统和高效程序的基础。拷贝构造函数在对象复制过程中扮演着关键角色,决定了如何正确地复制对象的状态和数据。而析构函数则负责在对象生命周期结束时释放资源,确保程序运行的稳定性和性能。在本博客系列中,我们将深入探讨C++中拷贝构造函数和析构函数的实现原理、使用场景以及最佳实践。

2024-07-17 19:41:16 1106 34

原创 【C++】构造函数详解

本篇博客主要介绍一下C++中的构造函数及拷贝构造函数的特性及用法,至于与这一部分有关的析构函数及运算符重载等内容就放在下次。构造函数是特殊的成员函数,构造函数千万不要认为它是用来创建对象的,其实构造函数的主要任务并不是开空间创建对象,而是初始化对象。关于构造函数,可以理解为使用类实例化对象时,每一个对象都要进行初始化,都要进行调用初始化函数,这个操作是实例化对象的必要操作,那么有没有更好的方式来简化这个调用操作。于是C++便推出了构造函数本篇博文对构造函数做了一个较为详细的介绍,不知道对你有没有帮助呢。

2024-07-15 19:41:56 1147 42

原创 【C++】引用变量详解

C++新增了一种复合类型–引用变量。引用是已定义的变量的别名(另一个名称)。例如,如果将twain作为clement变量的引用,则可以交替使用twain 和clement来表示该变量。那么,这种别名有何作用呢?是否能帮助那些不知道如何选择变量名的人呢?有可能,但引用变量的主要用途是用作函数的形参。通过将引用变量用作参数,函数将使用原始数据,而不是其副本。这样除指针之外,引用也为函数处理大型结构提供了一种非常方便的途径,同时对于设计类来说,引用也是必不可少的。

2024-07-12 15:42:11 919 22

原创 【C++】函数重载详解

函数多态是C++在C语言的基础上新增的功能。默认参数让您能够使用不同数目的参数调用同一函数,而函数多态(函数重载)让您能够使用多个同名的函数。术语“多态”指的是有多种形式,因函数多态允许函数可以有多种形式。类似地,术语“函数重载”指的是可以有多个同名的函数,因此名称进行了重载。这两个术语指的是同一回事,但我们通常使用函数重载。可以通过函数重载来设计系列函数–它们完成相同的工作,但使用不同的参数列表。

2024-07-12 14:15:41 1292 13

原创 【C++】cout.self()函数

笔者在学习浮点数这一块的时候经常看到这样的一部分代码,一开始对着cout.setf本着将就看着,之后学到在搞明白的心思,但是见得实在是太多次了,于是乎用一次性搞明白这句话的意思及怎么用return 0;

2024-07-04 15:28:58 919 18

原创 【C++】const详解

C++ 中的 const 关键字的用法非常灵活,而使用 const 将大大改善程序的健壮性const 是 C++ 中常见的类型修饰符,常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的const 名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。

2024-07-03 15:33:16 839 16

原创 【C++】using namespace std 到底什么意思

要建造简单的房屋,首先要打地基、搭框架。如果一开始没有牢固的结构,后面就很难建造窗子、门框、圆屋顶和镶木地板的舞厅等。同样,学习计算机语言时,应从程序的基本结构开始学起。只有这样,才能一步一步了解其具体细节,如循环和对象等。这篇博客,笔者就介绍一下由C语言转到C++时,我们第一个会遇到的语句即,并着重介绍一下其中的含义和由来Namespace(命名空间)是在计算机科学中常见的概念,用于表示符号的命名范围或作用域。

2024-06-30 14:17:08 1350 18

原创 【数据结构】计数排序等排序

上一篇博客中详细介绍了六大常用排序包括选择、插入、冒泡、希尔、快速、堆排序这次再扩充一个计数排序并简述一下基数排序和桶排序本篇博文对计数排序等做了一个较为详细的介绍,不知道对你有没有帮助呢觉得博主写得还不错的三连支持下吧!会继续努力的~

2024-06-28 15:04:53 1161 14

原创 【C语言】Leetcode-312 戳气球

我们观察戳气球的操作,发现这会导致两个气球从不相邻变成相邻,使得后续操作难以处理。因为我们是利用递归将每种结果都计算出来,所以他的工程量是很大的,为了降低时间复杂度,我们可以建立一个二维数组,来根据。内的位置全部填满气球能够得到的最多硬币数。由于时开区间,因此区间两端的气球编号就是。的位置用来存放两头的超出数组边界的1,剩下的从1开始就是。为当前区间第一个添加的气球,该操作能得到的硬币数为。同时我们利用递归,去计算分割出的两区间对。的贡献,这三项之和的最大值,即为。数组,用来存储所有的元素,其中。

2024-06-09 22:05:04 1100 10

原创 【数据结构】六种排序实现方法及区分比较

众所周知,存在许多种排序方法,作为新手,最新接触到的就是冒泡排序,这种排序方法具有较好的教学意义,但是实用意义不高,原因就在于它的时间复杂度太高了,为O(n^2)即便后来我们使用flag去优化它,也不过也不过少了一点,如果序列完全倒序,就没什么用。所以为了使代码运行效率更高,人们就设计了许多种排序方法,这里笔者将比较常用的六种进行介绍,并对其的一些使用情景及效率进行一下比较。默认实现时都为升序插入排序希尔排序选择排序堆排序冒泡排序快速排序。

2024-06-01 16:33:53 1326 29

原创 【数据结构】二叉树运用及相关例题

在笔者的前几篇篇博客中介绍了二叉树的基本概念及基本实现方法,有兴趣的朋友自己移步看看。这篇文章主要介绍一下二叉树的其他的几个重要功能实现方法,并对几道例题进行一个分析和解答。

2024-05-31 22:01:38 990 19

原创 【数据结构】二叉树的功能实现

需要注意的是,如果大家在看别的博客的时候可能会遇到,他们直接使用队列的尾插功能,但其实这病不行,因为队列我们在创建时它的尾插功能的对象往往是队列的结构体,如果直接将其用来放入二叉树的层序遍历功能中,会出现bug。另外加一嘴,因为我们创建的二叉树是一个一个节点创建的,所以我们为了避免内存泄漏,最后也是需要通过递归一个一个释放,这里我们可以通过函数递归一直找到叶子节点,往上一个一个释放,即。通过这种数据结构,我们将每次提取出来的节点放到队列的末尾,这样最后输出的队列,从头往后就是二叉树的层序遍历。

2024-05-24 23:17:49 920 17

原创 【数据结构】二叉树基本概念及堆的实现

通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。下面我们给出一个数组,这个数组逻辑上可以看做一颗完全二叉树,但是还不是一个堆,现在我们通过算法,把它构建成一个堆。这里我们从倒数的第一个非叶子结点的子树开始调整,一直调整到根结点的树,就可以调整成堆。因为度为0的结点没有孩子,故度为0的结点不产生边;当我们删除一个最大堆的堆顶(并不是完全删除,而是替换到最后面),经过自我调节,第二大的元素就会被交换上来,成为最大堆的新堆顶。

2024-05-16 21:26:03 831 20

原创 【数据结构】有关栈和队列相互转换问题

整个队列实现栈的操作中最难理解的就是尾插和尾删的联系与衔接,这两者的关系一旦理清,别的就是信手拈来,这里笔者就不赘述了,跟栈的原始操作大同小异,代码就放在下面了。关于用栈实现队列,我们要做的不同方向是,利用两个栈实现,这两个栈不想上面一样,通过判空来使用,而是直接进行分区,一个用来输入,一个用来输出。,关于尾删,我们的想法应该是利用队列中带有的尾插操作,将有数据的队列的数据一个个传到空队列中,最后一个传出的数据就是我们要删的数。此时我们需要做的是利用队列中自带的取队头数据操作,就可以获得栈所需的栈顶元素,

2024-05-13 15:55:33 913 22

原创 【数据结构】队列详解(Queue)

联想一下链表,在单链表中,只能对表尾进行插入,对表头进行结点的删除,这样强限制性的链表,就是所说的队列。队列是一个线性的数据结构,并且这个数据结构只允许在一端进行插入,另一端进行删除,禁止直接访问除这两端以外的一切数据,且队列是一个先进先出的数据结构。队列只有链式的设计方法,其本身分为多种队列,如顺序队列和循环队列,还有衍生的优先队列等等,以顺序队列的设计为例。两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。主要的操作只对这两个指针进行操作。

2024-05-10 21:54:50 955 9

原创 关于GitHub仓库建立及提交问题

为了整一个GitHub仓库然后上传文件,笔者看了不下100篇博客,20段教程,最后在两位大佬的帮助下,才整明白了😭先提前说一嘴从2021年8月14日起,GitHub官方就不再支持文件提交时使用用户名账号及密码,所以大家至少这个时间前的攻略可以跳过了(不过笔者把能踩的坑都踩了一边😎😭)与原来直接用账号密码提交不同的是,现在需要用到的是令牌即token,后面笔者会讲着实来之不易,希望我的方法可以帮到大家。

2024-05-09 17:12:42 1299 19

原创 【数据结构】栈详解

文章目录对栈的理解栈的实现 - 基于哪种常见类型演变而来的栈的基本实现栈实现总体代码对栈的理解栈的特点:先进后出。入栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。我们可以看出羽毛球桶,先放进去的羽毛球后拿出来,后放进去的羽毛球先拿出来,为了更好的理解进栈和出栈,笔者这里用简图表示一下意思就是说,栈你如果要拿出一个,就是先拿出来后放进去的,要拿出来以前放进去的,就必须把后面放进去的全部拿出来才行栈的实现 - 基于哪种常见类型演变而来

2024-05-08 23:21:55 1131 13

原创 【数据结构】有关环形链表题目的总结

如果有环的话,创建两个指针,一个指针从head节点开始,另一个指针从相遇点meet开始,两个指针每次都走一步,两个指针相遇的点就是链表入环的第一个节点。关于这道题,大家可以利用快慢指针,一个每次走两步,一个每次走一步,只要他们有一次相撞了就代表说这是一个链表。这是快指针步数为3的情况,为4,为5的讨论情况也差不多这样,无非就是再讨论一下,这里就不赘述了。的总长度是不会变的,变得只是快慢指针之间的距离,如果在进行一次循环我们可以将。为奇数的话,就会导致最后快指针比慢指针多走了一步,这就会导致,追不上吗,

2024-05-06 21:39:26 1027 14

原创 【C语言】贪吃蛇项目(2)- 实现代码详解

在笔者的前一篇博客中详细记载了贪吃蛇项目所需的一些必备知识以及我们进行贪吃蛇项目的整体大致思路,有需要的朋友可以自行看下此外,需要提醒的是,如果你也想要自己写出这样的贪吃蛇程序,你最好进行区块分类,在头文件中将所有方法文件中用到的功能先写出来。对于等等写着写着忘记原来这个方法干嘛用的,可以点击你想要找的内容,再按F12就可以回溯到这个方法的最开始的编写部分了。

2024-04-20 21:24:46 1106 21

原创 【C语言】贪吃蛇项目(1) - 部分Win32 API详解 及 贪吃蛇项目思路

本次实现贪吃蛇会使用到的一些Win32 API知识,接下来我们就学习一下。Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外,它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application),所以便称之为 Application Programming Interface,简称AP|函数。

2024-04-17 22:01:07 890 6

原创 【C语言】双向链表详解

一篇博客带你理解双向链表的实现及注意事项

2024-04-12 22:31:02 1225 7

原创 【unity】【C#】游戏音乐播放和发布

文件就可以打开这个游戏了,如果你想把这个游戏发给别人,需要回到整个打包文件夹下,将整个打包文件一起发送,这样游戏才能运行。关于游戏的打包发布就比较简单了,按下图这个顺序保存文件到自己想保存的位置,尽量避免路径中存在英文,不仅如此我们还可以通过鼠标、键盘等的输入,改变音乐的播放情况,比如说下面这一块代码,我们先调用。,确保运行时有声音出现,之所以有且仅有一个,是因为每个。都会单独运行,如果多个一起运行,可能会导致不必要的错误。会导致运行时场景没有声音,但是如果我们再代码的。还有一点需要注意的是,我们。

2024-04-11 21:31:10 1034 1

原创 【unity】【C#】UGUI组件

关于交互功能,举个例子,这个部分的功能,就是在按钮点击后会发生的变化,我们把text拖拽进这个部分,设置点击时失活(打勾为激活)这个东西其实就是一个滑块,在游戏里,角色往往有血条,这个滑块我们可以设置百分比填充,附带上代码,就能实现角色血量的变化。看到左下角那个小红方块了吗,我们可以移动它,也可以更改它的大小,如果想要等比例缩放只需要按住 alt 键。比较重要的是这一部分 - 交互功能,笔者用红圈圈出来的,勾选上这个按钮才有交互功能,否则没有。,同样我们可以在右边对他进行外观的编辑。

2024-04-10 23:21:07 615 1

原创 【数据结构】单链表

在笔者之前的文章中提到过顺序表,但是顺序表存在许多缺陷,比如说在中间或头部插入低下(要进行循环,将后面元素后移),一旦增容会降低运行效率、增容造成空间浪费等,因此,链表应运而生,可以刚好填补上上述三个缺点。

2024-04-09 22:42:42 1319 1

原创 【unity】【C#】物理系统和碰撞检验

同理,如果我们遇到 player 因为撞击后虽然飞的比较慢,但是旋转的速度比较快,我们就可以把角阻力 angular drag 给增大,就可以肉眼可见地发现旋转幅度下降了,质量也是如此,只要根据现实生活中的运用去思考就行了,不放图过多赘述了。再往下看,这里的意思的约束,第一行用来约束对象的移动,第二行用来约束旋转,只要勾选上,该物体在碰撞过程中,勾选上的内容就不再会发生改变。这个碰撞线是对象间碰撞的依据,可以随意改变,点击碰撞系统中的编辑按钮,再拖拽对象上的淡绿色小点就可以改变这个对象的碰撞范围。

2024-04-08 15:37:04 1209 1

原创 【unity】【C#】变换组件 Transform 和 V3结构体

因为运动不方便以静图的形式表示,所以这里我们打印每一帧的位置,如果你有一同操作,也能够发现这里的立方体以肉眼可见的速度迅速向后退去。这里需要注意的是字符串的查找十分严格,必须与子类对象名一模一样才能查找到,否则报错。但是这种自定义一个变量的方法肯定是无用的,但是我们可以通过向量来改变这个对象的位置。如果你觉得运行速度太快,不想以帧为单位,换为秒的话,只需要在V3结构体后乘上。相当于自定义一个向量,比如下面的代码,我们将鼠标放在。保存后调用,也成功地调用出了这个对象的位置。的输出同理,仅一种,不演示了。

2024-04-07 20:24:10 1423 1

原创 【unity】【C#】延时调用(协程)和场景管理

协程允许您将任务分布在多个帧中。在 Unity 中,协程是一种方法可以暂停执行并将控制权返回给 Unity,然后在下一帧中从中断的地方继续。在大多数情况下,调用方法时,它会运行到完成,然后将控制权返回给调用方法以及任何可选的返回值。这意味着在方法中发生的任何操作都必须在单个帧更新中发生。

2024-04-06 20:32:46 1656

原创 【数据结构】利用顺序表实现通讯录

这篇文章实现的通讯录利用了笔者上一篇写的有关顺序表的应用,需要用的朋友自行复制。

2024-04-05 21:45:24 604

原创 【C语言】【Leetcode】【递归】22. 括号生成

递归、回溯、strcpy以0为结束,calloc全部为0

2024-04-04 21:37:26 801 1

原创 【数据结构】顺序表

线性表(linear list)是n个具有相同特性的数据元素的有限序列。、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。所以我们可以认为顺序表是一种高级的数组,一种封装了一些功能的数组,实现了常用的增删改查等接口静态顺序表它只有两个成员,缺点是数据长度定死,没有灵活性这里我们看到第一行有一行代码。

2024-04-03 23:18:09 599

原创 【C语言】“vid”Microsoft Visual Studio安装及应用(检验内存泄露)

我们在写代码时往往容易存在内存泄漏的情况,所以存在这样一个名为VLD的工具用来检验内存泄漏,现在我来教大家安装一下。

2024-04-02 22:59:28 952

原创 【C语言】【Leetcode】409. 最长回文串

关于这道题,比起一般的回文数题,这题的区别的在给定的字符中任意排序直至形成一个最长的回文数,而且题目中跟我们提到,这里的字符串中只会出现字母,我们只需区分大小写即可。最后判断每个数组里的元素是否为偶数,是偶数直接在回文数总长度上加上这个长度,奇数,则加上奇数后减一。需要注意的一点是,如果有单独出来的一个数,可以把它放在中间,为回文数的总长度加上一,但是仅只能一次。所以我们可以这样思考,建立一个有52个int类型大小的数组,用来记录每个大小写字母出现的次数。

2024-04-01 23:21:16 505

原创 【C语言】【Leetcode】2437. 有效时间的数目

由于时钟的最大值为 24,分钟的最大值为 60,在此题解中分别枚举所可能的时钟,以及所有可能分钟,时间复杂度为 O(24+60)=O(1)。这题的可以简单的看成 h1 h2 : m1 m2 的情况,其中 h1 和 h2 有关, m1 和 m2 有关,数目不多可以直接暴力枚举解决。’ 时,我们可以填入 0 - 9 任意一个数字,然后再返回去看是否合法就行。即 00

2024-03-31 21:11:51 388

原创 【C#】知识点速通

笔者是跟着哔站课程(Trigger)学习unity才去学习的C#,并且C语言功底尚存,所以只是简单地跟着课程将unity所用的C#语言的关键部分进行了了解,然后在后期unity学习过程中加以深度学习。#region 和 #endregion 是用来分区的,便于找到所需部分,不用该部分时,可以点击 #region 左边的箭头进行缩略。其中比较重要的部分是public,static等的理解,以及父子集的运用,推荐还是跟着课程学习为好。所有内容只需要简单搜索就可以找到解释。即可,部分内容有所串通,不使用时尽。

2024-03-30 23:33:09 863 1

原创 【unity】unity安装及路线图

笔者电脑中提前安装了VS,所以出现了错误,这里笔者是直接在unity文件安装完出现错误后就取消下载了,但是这就会出现一个问题,就是一般通过unity hub下载的VS里Tahiti自动勾选unity开发一栏,所以笔者的就没有,但是没有关系。这里unity的安装往往会把编译器一同安装下来,就像下面这样,会根据所安装的unity版本,安装不同的编译器,就比如说2022开头的unity就会安装2022版的VS编译器。同时等待unitt hub下载完成后,直接点击我同意,并把文件安装在。二、有关unity的下载。

2024-03-29 22:34:24 644

原创 【C语言】预处理常见知识详解(宏详解)

在C语言中内置了一些预定义符号,可以直接使用,这些符号实在预处理期间处理的,并且这些符号都是C语言ANSIC里收集的但是在笔者的VS2022里不完全支持ANSIC的所有预定义符号这里把这里的预定义处理STDC都打印了一遍,证明都可以实现,但是当我们打印STDC时会出现由此可见随着编译器版本的升级有些C语言内置预定义会被忽视掉基本语法以下举例1000//register//为 register这个关键字,创建一个简短的名字/用更形象的符号来替换一种实现for;;

2024-03-28 23:32:41 2330

原创 【C语言】编译和链接

简单图文介绍编译和链接

2024-03-27 23:00:25 1353

原创 【C语言】【Leetcode】70. 爬楼梯

所以这里我们可以尝试使用动态规划的方法,就是说这里我们是知道目标数的,所以我们可以直接利用for循环从1和2开始一直循环下去,使 f(n) = f(n-1) + f(n-2) 下去,比上面的递归的空间复杂度就小了很多,只有O(n),同时因为没有额外创建循环空间,所以最后空间复杂度是O(1)其实这里还可以用数学的方法做,但是有带你复杂就不说了,有兴趣可以去力扣官方解题思路里看看。这题类似于斐波那契数列的算法,结果其实就是到达前一步和到达前两步的方法之和,一直递归到。

2024-03-26 23:01:32 437

空空如也

空空如也

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

TA关注的人

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