自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初识C++|vector类的使用及模拟实现

可以存string。

2024-08-13 10:25:08 717

原创 初识C++|string类的使用及模拟实现

string原型最基本的string类由于编码方式不同,又衍生出不同的string类由此可见,string是一个模板string类——管理字符串的类,是用字符的顺序表实现的在使用string类时,必须包含以及;注意不是!

2024-08-08 17:47:02 308

原创 初识C++|模板初阶

通过实参a1将T推演为int,通过实参d1将T推演为double类型,但模板参数列表中只有。注:如果类型不匹配,编译器会尝试进行隐式类型转换,如果无法转换成功编译器将会报错。一个T,编译器无法确定此处到底该将T确定为int 或者 double类型而报错。该语句不能通过编译,因为在编译期间,当编译器看到该实例化时,需要推演其实参类型。所以当一个匹配既没有非模板函数,也没有函数模板可以匹配到的时候,会。,是编译器用使用方式产生特定具体类型函数的模具。1. 重载的函数仅仅是类型不同,,对于模板函数的使用,

2024-07-19 11:24:18 922

原创 初识C++|类与对象(下)

因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。内部类本质也是⼀种封装,当A类跟B类紧密关联,A类实现出来主要就是给B类使⽤,那么可以考 虑把A类设计为B的内部类,如果放到private/protected位置,那么A类就是B类的专属内部类,其他地⽅都⽤不了。的,不具有交换性,⽐如A类是B类的友元,但是B类不是A类的友元。,如果A是B的友元, B是C的友元,但是A不是B的友元。,不属于某个具体的对象,不存在对象中,存放在。

2024-07-18 21:53:10 920

原创 C/C++内存管理

如果 malloc申请空间成功就直接返回,否则执行用户提供的空间不足应对措施,如果用户提供该措施 就继续申请,否则就抛异常。在申请空间后会调用构造函数完成对象的初始化,delete在释放空间前会调用析构函数完成空间中资源的清理释放。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5. malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需。类似,但它会分配一块连续的内存空间,并且将分配的内存初始化为零。

2024-07-18 20:19:32 693 1

原创 初识C++|类和对象(中)——类的默认成员函数

要求调⽤这个成员变量的默认构造函数初始化。如果这个成员变量,没有默认构造函数,那么就会报错。说明:C++把类型分成内置类型(基本类型)和⾃定义类型。内置类型就是语⾔提供的原⽣数据类型,如:int/char/double/指针等,⾃定义类型就是我们使⽤class/struct等关键字⾃⼰定义的类型。

2024-07-16 11:35:50 841 1

原创 初识C++|类与对象(上)

如果嵌套了结构体的情况,嵌套的结构体对⻬到⾃⼰的最⼤对⻬数的整数倍处,结构体的整体⼤⼩ 就是所有最⼤对⻬数(含嵌套结构体的对⻬数)的整数倍。的⽅式,⽤类将对象的属性与⽅法结合在⼀块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的⽤⼾使⽤。类是对象进⾏⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,类定义了⼀个新的作⽤域,类的所有成员都在类的作⽤域中,在类体外定义成员时,需要使⽤。编译器编译后,类的成员函数默认都会在形参第⼀个位置,增加⼀个当前类类型的指针,叫做。

2024-07-16 11:32:18 631 1

原创 初识C++ | 基本介绍、命名空间、输入输出、缺省函数、函数重载、引用、内联函数、nullptr

1979年,当时的正在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作。⾯对项⽬中复杂的软件开 发任务,特别是模拟和操作系统的开发⼯作,他感受到了现有语⾔(如C语⾔)在表达能⼒、可维护性 和可扩展性⽅⾯的不⾜。于是,牛逼的祖师爷决定自己创造语言!1983年,Bjarne Stroustrup在C语⾔的基础上添加了⾯向对象编程的特性,设计出了C++语⾔的雏形, 此时的C++已经有了类、封装、继承等核⼼概念,为后来的⾯向对象编程奠定了基础。这⼀年该语⾔被正式命名为C++。重点。

2024-07-11 17:00:43 636

原创 数据结构 | 超详细讲解七大排序(C语言实现,含动图,多方法!)

注意:两次交换的中间需要进行依次判断,判断maxi是否仍然等于begin,因为经过第一个交换后原begin位置的值已经交换到mini位置去了,如果判断成立,maxi也应该跟随原begin的值的移动移动到mini位置。2.划分两个大小为gap的子数组[begin1,end1],[begin2,end2],这两个数组应当是有序的,对其进行归并,归并完后,继续向后划分两个大小为gap的子数组,继续归并,直到整个数组被遍历完。3.将a[begin]和a[mini]进行交换,将a[end]和a[maxi]进行交换。

2024-06-06 17:39:25 1160 2

原创 数据结构 | 二叉树(基本概念、性质、遍历、C代码实现)

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。特征:前n-1层都是满的,最后一层可以不满,但最后一层从左到右必须是连续的。一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。:从根开始定义起,根为第1层,根的子结点为第2层,以此类推;为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。:若一个结点含有子结点,则这个结点称为其子结点的父结点;:一个结点含有的子树的根结点称为该结点的子结点;1. 若规定根结点的层数为1,则一棵非空二叉树的。

2024-05-31 17:53:43 860 1

原创 数据结构 | 详解二叉树——堆与堆排序

2.再向下调整(大的上小的下),这样调整后的堆顶元素必为调整范围内的最大值,经过下一轮的首尾元素交换后,就可以放入调整完的区域内。可以看出:节点少的层向上调整得少,节点多的层向上调整得多。可以看出:节点少的层向下调整得多,节点多的层向下调整得少。第一层,2^0个节点,需要向下调整h-1层。第二层,2^1个节点,需要向下调整h-2层。第三层,2^2个节点,需要向下调整h-3层。第h层,2^h个节点,需要向下调整h-1层。第h层,2^h个节点,需要向下调整0层。第三层,2^2个节点,需要向下调整2层。

2024-05-29 22:37:38 2205 1

原创 R语言入门 | 使用 ggplot2 进行数据可视化

geom_bar(mapping = aes(x = cut, fill = cut)) //fill明显更常用。#在geom_smooth平滑曲线图中,可以按照不同的线型绘制出不同的曲线,每条曲线对应映射到线型的。#在geom_smooth平滑曲线图中,可以按照不同的线型绘制出不同的曲线,每条曲线对应映射到线型的。x=<变量名>,y=<变量名>,color=<变量名>,shape,size,alpha(透明度)可以将点的颜色映射为变量class ^^^^^^^^^^^^^

2024-05-29 16:11:56 2006

原创 R语言入门 | 使用 dplyr 进行数据转换

3.1.1准备工作基础•按值筛选观测(filter()•对行进行重新排序(arrange()•按名称选取变量(select()•使用现有变量的函数创建新变量(mutate()•将多个值总结为一个摘要统计量(3.2使用filter()筛选行filter()函数可以基于观测的值筛选出一个观测子集。filter(数据集,条件)注意:用双等号进行赋值,保存数据集3.2.1比较运算符比较运算符:>=<=!(不等于)和==(等于)

2024-05-29 16:11:22 1939

原创 数据结构 | 详解栈实现队列&队列实现栈

step2:此时非空队列中剩下的唯一一个数就是“栈顶”元素,使用QueueFront进行·取值后,直接进行QueuePop删除。step0.先利用假设法假定非空队列notempty和空队列empty,再利用MyStackEmpty函数对进行修正。step1:将notempty队列中的前size-1个元素依次push到empty队列中,再进行删除,实现移动操作。

2024-05-17 23:32:03 415

原创 数据结构 | 详解设计循环队列

队列为满时:tail的后一个为head(注意:这里规定tail指向尾元素的下一个位置)注意此时空间有k+1个,tail和head在进行回绕时,应当是%(obj->k+1)在现有的基础上,队列空和满时tail==head,无法区分,因此我们需要另寻他法。[tail+1]%(N+1)==head(注:这里的N指可用的空间)注意此时空间只有k个,tail和head在进行回绕时,应当是%obj->k。由于我们的tail指向的是尾元素的后一个,所以我们求队尾元素时应该向前找。满判断 obj->size==k。

2024-05-17 22:51:48 381

原创 C语言 | 从零实现贪吃蛇游戏(万字详细拆解分析!)

它⽤于从⼀个特定的标准设备(标准输⼊、标准输出或标准错误)中取得⼀个句柄(⽤来标识不同设备的数值),使⽤这个句柄可以操作设备。首先,我们来梳理一下贪吃蛇游戏的基本功能和游戏流程,将任务一点点细化~(非常推荐用思维导图的方式进行梳理,很清晰!COORD 是Windows API中定义的⼀个结构体,表⽰⼀个字符在控制台屏幕幕缓冲区上的坐标,坐标系。检索有关指定控制台屏幕缓冲区的光标⼤⼩和可⻅性的信息。(0,0) 的原点位于缓冲区的顶部左侧单元格。设置指定控制台屏幕缓冲区的光标的⼤⼩和可⻅性。

2024-04-29 22:58:34 754 1

原创 数据结构 | 详解两道环形链表算法题

今日快报:女大勇闯蓝桥杯C/C++A组,空手而归,痛失300大洋!心碎成渣渣,遂写博客!😭😭。

2024-04-29 20:31:56 719 5

原创 C语言 | 程序的编译和链接

程序将进行(包括预处理、编译、汇编),两步操作,将源代码转换为可执行程序(.exe):用来执行代码。下文将浅浅解析具体过程~

2024-03-30 15:37:59 356 7

原创 C语言|文件操作

1.前言1.1文件文件根据功能可以划分为两种:1.程序文件如源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe)。2.数据文件程序读写时的数据。根据数据的组织形式,数据⽂件被分为:2.1.⽂本⽂件在外存上以ASCII码的形式存储,需要在存储前转换,以ASCII字符的形式存储的⽂件。2.2.⼆进制⽂件数据在内存中以⼆进制的形式存储,不加转换的输出到外存的⽂件本篇我们将讨论如何处理数据文件。1.2 文件指针。

2024-03-28 23:12:01 997 7

原创 C语言 | 深度解析结构体

1.结构体类型的声明1.结构体类型的声明。

2024-03-23 10:52:51 866 8

原创 C语言 | atoi函数使用及其模拟实现

功能:将字符串转换为整型数参数:要转换的字符串的地址返回值:转换后得到的整形数头文件:需要包含头文件<stdlib.h>注意事项:1、该函数首先会丢弃空白字符,直到找到第一个非空白字符,然后,从这个字符开始,取个可选的初始加号或者减号,后跟尽可能多的十进制数字,并将他们返回一个int类型的数值。2、字符串可以在构成整数的字符之后包含其他字符,这些字符将被忽略,并且对此函数的行为没有影响。

2024-03-22 23:38:16 265 2

原创 C语言 | 深度剖析数据在内存中存储

其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存 在内存的低地址处。⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存 在内存的⾼地址处。所以,通过上面的例子可以知道,笔者所使用的visual studio是小端存储。

2024-03-20 23:28:01 669 4

原创 C语言|内存函数及其模拟实现总结

memcpy,memmove,memset,memcmp的头文件都为string.h。

2024-03-16 17:46:28 295 5

原创 C语言入门 | 一文理解指针

int* p //整形指针变量,指针类型为int*,指针指向intchar* p //字符指针变量,指针类型为char*,指针指向charint* p :整形指针变量,指针类型为int*,指针指向intchar* p :字符指针变量,指针类型为char*,指针指向char总结:指向类型* 变量名1.2.2初始化指针变量指针变量在定义时可以赋值,即初始化。可以赋值为“NULL”或“0”。

2024-03-07 18:14:24 779 12

原创 【C语言】扫雷游戏(简易实现)

盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。你可以任意选择一个格子将其打开。打开一个格子后,如果有雷则游戏结束,如果没有雷,则该格子会显示附近区域的雷的个数,你需要继续选择格子进行打开,直至排除所有的雷为止。在C语言中,我们选择用以下元素来进行:棋盘——9*9二维数组有雷格子——“1”无雷格子——“0”未打开格子——“*”

2024-01-13 17:46:38 354 2

原创 c语言分支和循环知识总结

1.1if-elsei语法形式如下:注:当执行语句只有一句时花括号可以省略。

2023-12-01 16:05:32 27 1

空空如也

空空如也

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

TA关注的人

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