- 博客(59)
- 收藏
- 关注
原创 算法基础篇--模拟
这类题⼀般较为简单,属于竞赛⾥⾯的签到题(但是,万事⽆绝对,也有可能会出现让⼈⾮常难受的模拟题),我们在学习语法阶段接触的题,⼤多数都属于模拟题。从上面的表格就可以很直观的看出关于方向向量的使用规则,以后在进行BFS(宽度优先遍历)的学习时,我们就会使用到8个方向遍历的情况。这道题目的题意十分的简单,重要的是大家不要被题目给饶了进去,可以在草稿本是哪个理清思路再开始写代码。这里使用的都是简单的语法,同时思路也十分的简单,知识需要大家将这个问题给看懂。这里我就直接先展示相应的代码,再来讲解相关的原理思路。
2025-02-25 15:23:49
1046
24
原创 C++二叉搜索树
map/set下面就是一颗二叉搜索树:fill:#333;color:#333;color:#333;fill:none;
2025-02-24 19:14:22
1013
9
原创 C++多态
多态是继承关系下的类对象,去调用同一函数,产生了不同的行为。如Student类继承了Person。Person对象买票全价,而Student对象买票就会是半价!
2025-02-22 21:31:58
1086
14
原创 c++继承
继承()机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复用,继承是类设计层次的复用。下面我们看到没有继承之前我们设计了两个类Student和Teacher,Student和Teacher都有姓名/地址/
2025-02-18 18:45:03
777
7
原创 c++模板进阶
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。优点模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性缺陷模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误好了,今天的学习就到这里,我们下期再见 😛🌈。
2025-02-03 01:07:01
797
1
原创 stack 和 queue容器的介绍和使用
队列(queue)系那个寻大家爱都已对此十分的熟悉了,大家在学习之前也可以先来阅读以下下面的这篇文档哈 🌈 🌈函数声明接口说明queue构造空的队列empty检测队列是否为空,是返回true, 否则返回falsesize返回队列中的元素front返回对头元素的引用back返回队尾元素的引用push在队尾将元素val插入队列pop将对头元素出队列介绍文档优先队列是一种容器适配器,更具严格的弱排序标准,他的第一个元素总是它所包含元素的中的最大值。
2025-01-28 14:31:01
1277
14
原创 STL容器-- list的模拟实现(附源码)
也实现好了,但是这里依然还存在问题,这样我们将相当于为迭代器实现了两个类,这两个类的攻击能还高度重合,这并没有,体现出模板函数的简洁性,因此我们还可以通过其他的方式来优化我们现在的代码。其实从功能上看,这个迭代器与原来的迭代器十分的相似,只是不能对指向对象的值进行修改,因此我们就只需要对。中存储的不是基础类型的元素,而是类等较为复杂的对象时,我们应当怎么正常的使用这个类对象的成员呢?我们已经清楚了链表的结构,在进行数据尾插时,好,常用的接口我们就实现了,list学习到此告一段落,再见!
2025-01-18 23:38:05
1378
23
原创 c++学习——list容器的使用学习
kw=list通过这幅图其实就可以简单的诠释list容器的基本结构,list本质上就是一个双向的循环带头链表。
2024-11-30 16:29:25
1275
35
原创 vector容器的学习
construct(构造函数声明)接口说明vector()(重点)无参数构造被vector(size_type n, const vaule_type& val = value_type())构造并初始化n个val(重点)拷贝构造使用迭代器进行初始化构造// 下面涉及迭代器初始化的部分,我们学习完迭代器再来看这部分it!
2024-11-16 12:09:02
1367
37
原创 string类的模拟实现
通过前面的学习,我们堆string类进行了简单的介绍,大家只要能够进行正常的使用即可。而在面试中,面试官让学生自己来模拟实现string类,最主要的是实现string类的构造、拷贝函数、赋值运算符重载以及析构函数。接下来,我们就来一起实现一下string类,来看看这其中有什么奥秘!
2024-10-25 21:16:43
980
32
原创 string类的学习(上)
string类与我们再C语言中接触到的字符串数据相似,但是做出了一些重大的提升,封装为类,实现了总多的接口,丰富了其功能,为简化了字符串的使用,那现在我们就开始深入学习string类吧。
2024-10-21 14:40:15
994
28
原创 算法1:双指针思想的运用(2)--C++
题目解析:在解析题目时,我们可以把最直接的方法先列举出来,然后再根据相应的算法原理,来进行优化。
2024-10-06 19:20:15
1667
27
原创 初始C++模板
class 类模板名// 类内成员定义// 类模版{ public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误,具体原因后面会讲// 扩容++_size;
2024-09-29 17:34:23
1230
32
原创 C / C++的内存管理
new的原理1.调用operator new来申请空间2.在申请的空间上执行构造函数,完成对象的构造delete的原理1.在空间上执行析构函数,完成对象的资源清理2.调用operator delete清理空间newT[N]的原理1.使用operator new[]函数,在operator new[]中调用operator new函数完成N个对象空间的申请2.在申请空间上执行N次构造函数。delete[]的原理在释放的空间上执行N次析构函数,完成N个对象的空间清理:、
2024-09-21 13:33:29
1563
38
原创 C++的类和对象(下)
无论是否显示写初始化列表,每个构造函数都哟初始化列表;无论是否在初始化列表中初始化·,每个成员变量都要走初始化列表;class Datepublic:,_day(day),_t(12),_ref(x),_n(1)// error C2512: “Time”: 没有合适的默认构造函数可⽤// error C2530 : “Date::_ref” : 必须初始化引⽤。
2024-09-12 12:53:57
1408
43
原创 Linux的常见指令
Hello,今天我们继续学习Liunx,上期我们简单了解了Linux的基本用处,并了解了Linux的重要性,今天我们就继续更加深入的学习Linux,进行指令方面的学习,我们可以通过先学习简单的基础命令来学习Linux,并在从充分了解了基础就只是的前提下,进行Linux实战。好,我们还是按例三连上车,开始我们今天的正题!!语法: ls[选项][目录或文件]功能:对于目录,该命令列出在该目录下的所有子目录和文件。对于文件,将列出文件名你给的以及其他信息的常用的选项:举例:这个命令十分的简单,它的作用其实就是显示
2024-08-31 11:21:50
3595
35
原创 初识Linux
前言Hello,今天我们又来开启一个新的篇章,相信大家在在看到这篇文章的标题的时候,就已经猜到了,对,博主今天要带大家开始学习Linux,那我们还是按例三连上车不迷路,开始我们今天的正题!!
2024-08-29 13:29:57
1290
27
原创 C++实战项目:日期计算器的实现
首先我们要定义一个日期类,运用我们刚学习的C++知识,我们这里直接看代码:案例,我们还是先创建3个文件来实现我们的目的class Datepublic://~Date();int _month;int _day;
2024-08-19 09:30:00
1553
43
原创 实战项目:贪吃蛇游戏的实现(下)
今天我们将继续贪吃蛇游戏的实现,紧接上期我们已经实现了贪吃蛇游戏的大部分基础知识,我们上期主要是学习了Windows系统的API函数,并实现了大部分的贪吃蛇设计,那这期我们将完成剩余的设计部分,并完成代码的实现。好,废话不多说,开始我们今天的正题。
2024-08-15 14:03:56
2532
52
原创 实战项目:贪吃蛇游戏的实现(上)
本次实现贪吃蛇会使用一些Win32API的知识,我们想要顺利的完成任务就要去认真掌握其中的一些函数。Windows这个多作业系统除了协调应用程序的执行、分配管理、资源管理之外,他还是一个好大吃的服务中心,调用这个服务中心的服务(每一种服务就是一种函数)。可以帮助我们达到开启视窗、描绘图像、使用周边设备等目的,由于这些函数的服务对象是一些应用程序(Application),所以百年称之为Applicatino Programming Interface,简称API函数。
2024-08-14 11:31:32
1638
52
原创 c++的类和对象(上)
c++为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中的函数称为类的方法或者是成员函数。为了区分成员变量,一般习惯上成员变量会加一个特殊的标识,如果成员变量前面或者是后面加——或者是m的开头,注意c++中这个是不强制的,只是一些惯例,在一些公司中会有具体的要求。c++中struct也可以定义类,c++兼容c语法中的struct中的用法,同时也对struct中的用法进行了升级,明显的变化是struct中也可以定义函数。
2024-08-07 15:32:20
1440
50
原创 排序算法1:堆排序,直接插入排序与希尔排序
前些时间,博主带领着大家学习了数据结构,数据结构中的二叉树更是其中的重中之重,我们之前了解了二叉树是现实计算机存储数据的一种重要形式。借助其结构,我们还能实现更多高效的功能。今天我们将进入排序算法的章节,首先我们会先学习,基于二叉树顺序结构—堆, 而实现的堆排序,还有两种重要的排序方法,直接插如排序和希尔排序,同时我们将探讨他们的排序时间复杂度。
2024-08-04 23:41:22
1160
17
原创 二叉树的介绍及其顺序结构的实现
底层的结构·是数组,所以对结构的定义就和顺序表的定义差不多int size;//记录有效元素的个数//记录申请的空间容量}Hp;!
2024-07-31 12:05:22
1848
63
原创 数据结构-----对列
基本概念:只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一段为队尾;出队列:进行删除操作的一端称为对头。队列的底层结构选型:队列也可以用数组和链表的方式链实现,使用链表的结构实现会更加的优秀,因为如果使用数组的结构,出队列在数组的头部进行,效率会十分底下!!}QueueNode;}Queue;怎样来理解这样的定义呢?队列的定义底层使用的确实是单链表的结构,但是特殊的就是,
2024-07-26 23:54:54
1363
57
原创 顺序表和单链表的经典算法题
Hello,小伙伴们,今天我们来做一个往期知识的回顾,今天我将为大家讲解几道经典的顺序表和单链表算法题,来帮助大家加深对单链表知识的讲解,同时带领大家来感受一下数据结构的魅力!!好废话不多说,开始我们今天的正题。
2024-07-24 15:37:52
1049
54
原创 数据结构----栈
前面我们说到,栈的底层结构我们采用数组的方式是最好的,所以我们可以怎样来定义栈呢?诶,我们是不是可以想到我们之前学习过的顺序表呢,他们们的底层逻辑都可以通过数组来实现,整体功能大同小异。int top;}stack;而在实现栈的功能时我们只要注意,栈的数据插入和数据删除都只是在一端进行就好了!!/首先实现栈的初始化看到这这里有没有人觉得很熟悉呢?
2024-07-20 14:45:25
1376
44
原创 单链表的介绍和实现
概念:链表是一种物理存储结构上的非连续、非顺序的的存储结构,数据的元素的逻辑顺序都是通过链表的指针链接次序实现的。链表的结构跟火车的车厢相似,淡季时车次很少,相应的车厢也可能会减少,旺季时相应的车厢也会减少。只需要将火车里的某节车厢加上或者是减去就好了,每节车厢都是独立的存在,彼此的增减删除不会影响其他的车厢的运作。车厢是独立存在的,且每节车厢都是有车门的。想象一下这样的场景。假设每节车厢的车门都是上锁的状态,最简单的做法就是:每节车厢都有下一节车相处的钥匙。在链表里,每节“车厢”大概是什么样的呢?
2024-07-15 23:39:29
1621
46
原创 顺序表的实现
好,相信通过顺序表的实现大家一定已经收获了许多的东西,下一次我会为大家讲解顺序表的应用,喜欢的小伙伴一定不要错过哟,好,咱们下期再见,拜拜!!!
2024-07-08 15:06:04
1232
37
原创 文件管理下:文件函数的学习
上面说的适用与所有输入流一般指标准输入流和其他输入流(如文件输入流);所有输出流,一般指适用于标准输出流和其他输入流(文件输出流)。
2024-07-07 15:52:37
901
17
原创 文件操作及部分文件函数的介绍学习(上)
Hello,亲爱的小伙伴们,作者菌我又回来了!!今天我将带领大家一起学习文件操作,好咱们还是战术三联一波,你们的支持就是我更新的最大动力。行,咱们正式进入今天的正题。磁盘上的文件就是文件。但在程序设计的中,我们一般谈的文件有两种:程序文件和数据文件(从功能的角度进行分类)2.1程序文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj的文件),可执行程序(windows环境下后缀为.exe).2.2数据文件。
2024-07-05 14:37:22
999
21
原创 动态内存管理函数的学习(c语言)
Hello, 亲爱的伙伴们,期末考试考的怎么样呢?!这真的对作者菌很重要。好废话不多说,这就切入我们今日的正题。在C语言中,动态分配内存是一种常见的操作。动态分配内存可以使程序更加灵活,可以根据需要动态分配和释放内存,而不需要预先知道需要分配多少内存。C语言中动态分配内存主要通过malloc、calloc和realloc函数来实现。!
2024-07-03 16:04:34
750
22
原创 结构体中内存的对齐
学C的同学应该知道~想精通C语言就不得不面对—指针与内存续上次指针进阶,这一章我来聊一聊C语言内存对齐的问题学习结构体的你有没有注意过结构体向系统申请的内存为多少呢的😁。
2024-05-30 16:07:34
1308
33
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人