自定义博客皮肤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++:const成员和取地址操作符

将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数。隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可。4.非const成员函数内部可以自由地调用const成员函数。3.const成员函数内部不可以调用非const成员函数。这两个默认成员函数一般不用重新定义 ,编译器默认会生成。1.const对象不能调用非const成员函数。2.非const对象可以调用const成员函数。

2024-04-26 19:33:09 643 25

原创 C++:日期类的实现

【代码】C++:日期类的实现。

2024-04-25 18:54:41 242 9

原创 C++:拷贝构造函数和赋值运算符重载

6. 虽然编译器会生成默认的拷贝构造函数,但仅仅会完成浅拷贝,如果拷贝的函数涉及空间申请(如stack),则会出现错误(两个函数会申请到同一块空间,销毁时会出现同一块空间释放2次,导致程序崩溃)。: 编译器自动生成的赋值运算符重载是浅拷贝,对于无空间申请的函数可以(如Date),对于有空间申请的函数就不可以(如Stack),必须自己写。上图中,我故意将减法重载成加法,Sum执行的+是我重载的减法,但b执行的还是加法,说明内置类型的运算符不受重载运算符的影响。

2024-04-25 18:40:56 2327 1

原创 C++:构造函数和析构函数

构造函数是一个特殊的成员函数,名字与类相同,创建类类型对象时由编译器自动调用,保证每个数据成员都由一个合适的初始值。在对象的生命周期内只调用一次。不使用构造函数使用构造函数上面两幅图在main函数中,图1未使用构造函数,每次定义时都要调用Init函数初始化。图2 使用了构造函数,直接定义就可以,编译器会自动调用构造函数初始化,方便了用户,也防止了用户忘记调用Init函数的情况。

2024-04-23 18:21:56 552 11

原创 C++:类的对象模型和this指针

类的大小是该类中所有“成员变量”的和(不计算成员函数),还有注意内存对齐。上图中,A1中只有成员函数,类的大小不计算成员函数,所有大小相当于空类,为1。A2也只计算了_a的字节大小,为4。

2024-04-20 17:00:00 352 6

原创 C++:类的作用域和类的实例化

类定义了一个新的作用域,类的成员都在类的作用域中。在类外定义类成员需要使用::作用域操作符指明成员属于哪个类域。

2024-04-20 12:00:00 247 5

原创 C++:类的访问限定符和类的封装

C++的访问限定符分为3个。公有):修饰的成员可以直接访问保护):修饰的成员在类外不能直接访问私有):修饰的成员在类外不能直接访问注:1.访问限定符的作用域是从该访问限定符出现的位置开始到下一个访问限定符为止,如果后面没有访问限定符,则一直到}为止。2.访问限定符的作用只在编译时有用,数据映射到内存上后就没有访问限定符的区别。

2024-04-19 16:04:53 153 3

原创 C++:类的定义

/类体:类的成员函数和成员变量////类的后面要加分号class为定义类的关键字,classname是定义的类的名称(可自行定义),{}中是类的主体,}后要加分号。类中的内容称为类的成员,类中的变量叫作成员变量或类的属性,类中的函数叫作成员函数或类的方法。类的声明放在.h文件中,成员函数放在.cpp文件中,但成员函数名前需要加类名。这是常用的做法。.h文件class Student//Student为类名public:public:int _age;.cpp文件。

2024-04-19 16:00:20 461 2

原创 C++入门(下)

auto定义的变量会在编译器编译时自动识别变量的类型,但auto定义的变量必须初始化。//c++查看变量类型return 0;auto定义指针时可以加上*,也可以不加*,但加*时必须定义指针。auto定义引用时必须加上&,否则就成了赋值初始化。//引用auto c = a;//初始化c=5;return 0;使用auto定义多个变量时必须定义相同类型的变量。注1.auto不能作为函数的参数。

2024-04-02 16:27:04 1570 11

原创 C语言:二叉树的构建

H节点操作自身,无孩子节点则返回到E,E无左孩子节点则返回到B,B的左右孩子都已访问则返回到A,访问A的右节点C。从A开始,访问A的左节点B,再访问B的左节点D,D无左右节点,操作自身,返回B节点。访问B节点的右节点E,再访问E的左节点H,H无左右节点, 操作自身,返回E节点。E节点先访问左节点H,H无左节点,操作自身,H无右节点,则返回E节点。B节点操作自身,返回A节点,再访问A节点的右节点C,访问C的左节点F。从A开始,先访问A的左节点B,B节点先访问D,D无左节点,操作自身。

2024-03-30 15:22:30 1873 11

原创 C++入门(上)

定义命名空间,需要使用到namespace关键字,后面加上命名空间的名字,再加一对{ },{ }中即为命名空间的成员。//ht 是命名空间的名字,可以自定义//1.命名空间的定义//命名空间中可以定义变量/函数/类型int a = 10;//2.命名空间可以嵌套int a = 5;int b = 2;int c = 3;//3.同名的命名空间可以合并,例如在test.h和test.cpp文件中都存在ht命名空间,编译器会//自动处理,合并成一个命名空间注。

2024-03-28 20:11:51 366 1

原创 C语言:二叉树基础

树是有n个节点组成的具有层次关系的集合,是一种非线性的结构。树的第一个节点称为根,根没有前驱节点。.除了根节点,其余每个节点都只有一个前驱节点,有0个或多个后继节点。:一个节点含有子树的个数(后继节点的个数)称为该节点的度。度为0的节点。度不为0的节点。如果一个节点含有子节点(后继节点),则这个节点为子节点的父节点。如果一个节点含有父节点(前驱节点),则这个节点为父节点的子节点。具有相同父节点的节点互为兄弟节点。在一颗树中,所有节点中度最大的节点的度,就是这颗树的度。

2024-03-23 22:04:34 491 1

原创 C语言:差分

上图中[1,2]+4==d[0]+4,d[1]+4,d[2]+4,d[3]+4...d[2]-4,d[3]-4...通过求前缀和操作,相当于用另一个数组完成了差分操作,再将原数组加上该数组,即可得到答案。

2023-12-21 14:57:37 245 5

原创 C语言:前缀和

该数组为1,2,3,4,5。前缀和为1,3,6,10,15。如果要求下标1~3的和,可以看做sum[3]-sum[0]如果要求下标2~3的和,可以看作sum[3]-sum[1]前缀和:将数组小于该前缀的数加起来的新数组。如果要求下标0~2的和,可以看作sum[2]根据上面的样例可以看出,

2023-12-19 19:21:02 362 2

原创 C语言:高精度除法(除低精度)

由图知,被除数的上一位的余数乘10加这位就是这一位结果的除数。

2023-12-13 19:09:26 289 5

原创 C语言:高精度乘法

由图可以看出c的小标与x,y下标的关系为x的下标加上y的下标再减一。第一次画图,略显简陋。

2023-12-12 21:51:40 561

原创 C语言:高精度减法

我的代码用x,y代替了a,b。

2023-12-11 20:02:19 626 3

原创 C语言:高精度加法

过大的数计算就无法用变量定义计算,但可以用数组巧妙的化解这个问题。

2023-12-10 18:59:02 288 6

原创 C语言:结构体详解

int x;char y;float z;上面的代码只声明了结构体的定义,但并没有定义结构体变量。char b;float c;}a[20], *p;上面的结构体在声明的时候省略掉了结构体标签。

2023-12-02 11:45:32 481 9

原创 Coloring Rectangles

David was given a red checkered rectangle of size n×m. But he doesn't like it. So David cuts the original or any other rectangle piece obtained during the cutting into two new pieces along the grid lines. He can do this operation as many times as he wants.

2023-12-01 10:03:38 55 1

原创 整数与浮点数在内存中的存储

在有符号的整数的二进制表示中,我们知道最高的一位表示符号位,0表示正数,1表示负数。如果需要在计算机中高效的计算包括负数的计算,就要用到补码。的三种表示方法各不相同。:直接将数值按照正负数的形式翻译成二进制得到的就是原码。:将原码的符号位不变,其他位依次按位取反就可以得到反码。:反码+1就得到补码。注:所以快速计算补码的方式就是,同样补码得到原码的方式也是。正因为如此,计算机才能高效的计算。

2023-11-30 15:26:18 196 7

原创 strtok,strerror,memcpy,memmove,memset,memcmp函数的使用

1.sep参数指向⼀个字符串,定义了用作分隔符的字符集合。2.第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标记。3.strtok函数找到str中的下⼀个标记,并将其用 \0 结尾,返回⼀个指向这个标记的指针。4.strtok函数的第⼀个参数不为NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。5.strtok函数的第⼀个参数为NULL,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标记。

2023-11-29 14:46:38 175 3

原创 C语言:指针详解

在购买电脑时,常常可以看到电脑的内存为8GB/16GB/32GB等,为了可以有效的管理内存,就把内存分成一个个的内存单元,每个内存单元的大小是1个字节。bit 比特位byet 字节KBMBGMTBPB每个内存单元都有编号,CPU就是通过内存单元的编号找到相对应的内存空间。

2023-11-27 18:13:57 504 2

原创 C语言:操作符

int b;int c;char d;}n2;//声明类型同时定义变量n1//定义结构体变量n2//初始化//初始化。

2023-11-15 15:25:48 250 5

原创 C语言进制转换和与二进制有关操作符

二进制由数字0,1组成,是计算机所理解的语言,计算机中存储就是使用2进制。每超过1就进一位,从右至左,数字的权重分别是2^0,2^1,2^2……例:1用二进制表示为1;2用二进制表示为10;10用二进制表示为1010;百位十位个位求和2进制101权重2^12^12^1权重值421数值4017。

2023-11-08 21:51:25 227 5

原创 C语言:扫雷小游戏(破产版)

这个代码运用了多个自定义函数,为防止函数的声明问题,可以创建多个文件共同实现代码。1.test.h此文件专门用来声明用到的自定义函数和头文件。#define ROW 9//地图的行#define COL 9//地图的列#define Count 10//雷的数量//初始化棋盘//打印棋盘//布置雷//排查雷//计算坐标周围的雷2.test.c此文件用于实现game函数的代码int i = 0;for (i = 0;i < rows;

2023-11-02 21:53:41 185 7

原创 C语言:数组

数组中可以有一个或多个数据,且这些数据的类型相同。数据可以分为一维数组和多维数组,多维数组常见的是二维数组。

2023-10-29 21:25:11 162 3

原创 C语言的分支与循环语句(基础)

if语句的表达形式:if(表达式)语句如果表达式的结果为真(成立),则执行语句,反之不执行语句。在C语言中0为假,非0表示真(如1,3,-56都为真)。上述是例子代码与运行结果,很明显b,c,d都为非0,打印了结果,而a为0没有打印。注:if语句如果只有一条语句可以省略上述代码中的{},但如果if后有多条语句就必须使用{},否则会默认if后只有一条语句,为了培养良好的代码习惯,我推荐每条if后都添加{},可以方便阅读和美观代码。

2023-10-23 17:39:24 78 2

原创 第一篇博客

目前每周我除了星期一有两节体育课,要从晚上8点10分开始学习之外,每天都是晚上6点半进入学校的ACM实验室自习(现在学校ACM实验室招新,可以自由进入学习,主要是我想进ACM,而且本人有点社恐,到现在都没不知道学校图书馆自习室怎么接),一直学到10点。既然学校不是和很好 ,老师上课也很水,我就决定自己学习编程,目前在B站,慕课上学习写C语言,还注册了Gitee网站,在上面记录自己写过的代码,给与自己鼓励。我想学好计算机这门学科,成为别人口中的大牛,让别人敬佩自己,找到一份好工作,为父母担起肩膀上的重担。

2023-10-11 19:02:18 91 3

空空如也

空空如也

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

TA关注的人

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