自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】虚函数

在类的成员函数前加上virtual关键字,这个函数就是虚函数。虚函数的所用就是完成多态。运行结果如下:可以看到:父类指针调用函数,若该函数是虚函数,则调用子类的同名函数(无同名调用虚函数)。如果不是虚函数,则正常调用父类的普通函数。

2024-09-17 15:48:48 428

原创 【C++】继承

子类会优先调用父类的默认构造函数,如果父类没有默认构造函数,则需要在子类的构造函数的初始化列表中显示调用。为了解决菱形继承的问题,出现了虚继承。在C++中,继承也是如此,将一个类的成员传给了另一个对象。子类继承父类后,可以将继承下来的成员看作一个整体,看成一个子类的成员。父类成员和子类成员名字相同同时,子类成员会将父类成员中同名的成员。父类成员被隐藏后,调用该名字的成员,会默认调用子类中的同名成员。也就是说,必须先析构子类自身的数据,再析构继承的父类的数据。继承的方式不同,继承的成员的访问权限也不同。

2024-09-16 18:12:10 704

原创 【C++】priority_queue讲解

priority_queue的本质就是堆,添加的元素按照堆的规则存储,默认情况下是大堆。

2024-09-10 14:55:34 258

原创 【C++】list容器

list实际上就是一个双向链表。

2024-09-07 10:14:24 565

原创 【C++】简单易懂的vector迭代器

vector的迭代器本质上就是一个被封装的指针。迭代器的用法和指针的用法十分相似,就是一个像指针的假指针,我们不妨把迭代器看作一个伪指针。

2024-09-06 15:55:20 337

原创 【C++】超简单深浅拷贝原理

这就会导致:调用str1的析构函数会将地址1释放,等程序运行str2的虚构函数的时候,会再一次释放地址1,造成一个地址多次释放,系统会报错。通过一,我们得知:在类中有需要释放空间的成员函数时,不能使用浅拷贝(默认拷贝),需要使用深拷贝。既然是复制,就会产生一个问题——str1中开辟的地址也给了str2。这种拷贝方式让地址1和地址2相互独立,互不干扰。此时进行两个地址的释放就不会报错。我们使用类中默认的拷贝构造函数为。str1和str2共用一个地址。

2024-09-05 16:55:19 295

原创 【C++】string讲解

我们可以把string看作一个更高级用类实现的char*。或者直接叫他字符串类型,一听就是定义字符串的。

2024-08-18 15:08:28 382

原创 【C++】模板

模板是一种编程工具。它可以让代码具有通用性(让多个不同的类型使用同一个模板)。模板的声明:或。

2024-08-12 13:18:00 258

原创 【C++】内存管理

C语言动态管理内存用:malloc、calloc、realloc函数开辟空间。free函数释放空间。C++用:new关键字开辟空间。delete关键字释放空间。

2024-08-11 12:34:15 325

原创 【C++】构造函数初始化列表

在初始化成员变量的语法。

2024-08-08 12:18:27 380

原创 【C++】函数/运算符重载

函数名相同,行参列表(类型,个数,顺序)不同的函数,这些函数构成函数重载。(*注:C语言没有函数重载,C++有)

2024-08-05 17:58:59 217

原创 【C++】类的使用

我们也可以定义C语言的struct结构体,不过struct会被升级成为类。class 自定义的类名//类的成员//末尾有分号如:class Dateint a;类的成员可以全在类中定义,类中的所有成员都可以无限制的访问彼此。int b;我们可以让类成员函数在类中声明,在类外定义。不过在类外的函数在成员名前加 -> 类名::。以此确定该函数属于哪个类。class Date。

2024-08-05 15:13:47 747

原创 【C++】命名空间

int a;return;要在命名空间外定义成,必须保证成员定义的空间包含自己的声明所在的空间。int a;void C::func()//这样定义是错的return;//错的。

2024-08-03 13:13:06 271

原创 各种排序算法(动图)

前排声明:该文章本质上是其他文章的集合,里面的动图我都有放原文链接。

2024-07-30 17:42:54 832

原创 【C】二叉树层序遍历

从根开始,从上到下,从左到右依次访问。这种访问方式就是层序遍历。

2024-07-28 15:12:18 276

原创 【C】栈和队列

先进入栈的数据会被压在栈底,后进入的数据会在栈顶。栈的元素只能从栈顶取。也就是说,如果先要取到1,就必须把上面的元素全取走。

2024-07-26 11:44:05 465

原创 链表带环问题简单讲解

对于这道题我们可以定义两个指针,一个快指针,一个慢指针。快指针一次走两步,慢指针一次走一步。这样快指针就会比慢指针先进入环内。慢指针进入环后,这个问题就会演变成一个追击问题,即:快指针能否追上慢指针并与之重合。假设,慢指针进入环后与快指针的距离为N。因为快指针速度为2,慢指针速度为1,所以两个指针每走一次都会使N-1,当N=0时,快指针与慢指针相遇。因为两指针每次移动缩减的距离为1N势必会等于0,而且不存在快指针越过慢指针的情况。

2024-07-20 11:27:24 424

原创 贪吃蛇项目(含源码)

游凡/贪吃蛇首先,打开编译器,随便写点东西运行,出现运行窗口,右键运行窗口的上边窗。点击属性,将默认终端应用程序改为控制台主机。

2024-07-16 10:17:22 785

原创 编译和链接(就一张图)

将我们写的 .c 文件 翻译成 .exe 后缀的可执行目标文件。在ANSI C(标准C)的任何实现中,都有两种环境。由操作系统执行 .exe 的执行过程。

2024-04-19 19:01:56 285

原创 【C】文件操作(你想要的表格在目录二、三,有函数讲解)

1.程序文件文件后缀为:.c(源程序文件) .obj(编译后的目标文件) .exe(可执行程序)2.数据文件储存数据的文件,如:.txt .jpg .log等都是数据文件。

2024-04-18 17:58:26 1298

原创 结构体的内存对齐(看图理解)

1. 第一个成员在与结构体变量偏移量为0的地址处2. 从第二个成员开始,以后每个成员都要对齐到某个对齐数的整数倍位置这个对齐数是自身成员大小和默认成员对齐数的较小值。*vs环境下默认成员对齐数是83.当成员全部放入后,结构体的总大小必须是所有成员对齐数中最大对齐数的。

2024-04-14 12:36:26 356

原创 【C】让你瞬间理解结构体

int b;char c;float d;//s为结构体变量//struct sq为结构体类型struct spint a;char c;}q;char c;}q,*p=&q;//*p指向q(结构体变量)

2024-04-13 20:45:53 258

原创 浮点数与整数在内存中的存储(速览)

在内存中占四个字节(32比特),以二进制补码形式存储在计算机中。(输出整数时,将补码转换成源码再进行输出)1(正数)//源码:000000000000000000000000000001//反码:000000000000000000000000000001//补码:000000000000000000000000000001-1(负数)//源码:100000000000000000000000000001最开始的1是符号位表示负号。

2024-04-12 21:28:08 451

原创 【C】mem--系列函数介绍

查找ptr指向的前num个字节中,value第一次出现的位置。如果没找到,则返回NULL;

2024-04-11 20:50:23 784

原创 【C语言】无废话指针

所指的位置不可知的指针成为野指针。指向函数的指针。int main()// () 里放的是函数的参数// p 和 *p 没什么区别//**注意:(*p) 必须带括号,否者p会和[]匹配变成*(p[3,5])

2024-04-09 22:23:38 861

原创 【C语言】扫雷项目思路参考

当玩家踩的“格子”为0(周围没雷)时,将值改为-2(红圈代表),并依次检测3*3范围(黄色线段)的其他格子。*如果在其他格子检测到有格子也为0,则再以这个格子为中心,依次检测3*3范围的其他格子。剩下的就是在main函数里实现这些功能,我这里有事例(因为懒,所以main函数写的很乱,不要学我)*第一行(列)和第12行(列)为游戏外的行(列),把它看作墙就可以。(arr2有12行(列),但雷只需要埋在2~11行(列))用define创建数组的行和列,和雷的数量(后面要用)。(展示的代码不为最终代码顺序)

2024-03-26 00:27:16 343

原创 【C语言】无废话循环语句(快速理解)

这条语句被跳过,导致a的值不会增加,a=3,小于b。在这之后程序会不断地执行continue语句,跳过a++语句,a永远=3。———————————————————————————————————————————#for循环(最常使用,最好用)当a=5时a不小于b,所以不会进入循环,也就不会再输出a。可以看到,即使即使while(a>b)判断为假,依旧能执行一次循环;当a=3时执行break语句,提前结束了循环,致使程序只输出到3。这次讲的所有循环都可以嵌套(就是套娃),这里不做演示,大家可以自己试一试。

2024-03-22 20:08:21 457

原创 【C语言】无废话讲解:switch语句(快速理解)

switch语句原理。#switch可以嵌套。

2024-03-21 19:01:36 354

原创 【C语言】无废话讲解:if语句(快速理解)

因为ab)为假,所以{}中的语句都不会执行,运行结果也不会输出任何东西。可见,无论a是否大于b,if()在没有“{}”的情况下只能控制一条语句。所以红圈里的其实是一个整体,受“if(a>b)”控制。#if与else的对应关系。

2024-03-20 20:14:12 360

空空如也

空空如也

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

TA关注的人

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