自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVa227

【代码】UVa227。

2024-07-18 11:29:14 15

原创 传递闭包和可达矩阵的关系?

通过以上两个图片可以看出这两个定义有所区别,这篇博客所讲解的就是传递闭包和可达矩阵的关系?传递闭包定义为R并到R的n次方而可达矩阵定义为R并到R的n-1次方,并且在并上一个自反矩阵I,但是传递闭包定义中并没有定义要求并上自反矩阵I,除此以外,传递闭包本质上只需要并到R的n-1次方就好了,但是为什么要并到R的n次方呢?目的是并到出现第一个重复放矩阵~~~~~~~~即R的n-1次方的矩阵与R的n次方的矩阵所表示的矩阵相同。今天的这篇博客让我沉思了好久~~~今天的博客就讲到这里吧!

2023-07-05 14:50:03 425 1

原创 二分精讲版

其中的check函数就是用来判断条件的,简单来说就是当核心代码段出现了l =mid 的时候,前面的int mid = l+r就得。关于二分算法我总结出了两种,第一种就是整数二分;第二种就是浮点型二分。,否则不用加1,这确实会令初学者头疼,日积月累,便能够熟能生巧。首先先讲解一下整数二分,关于整数二分初学者可能学习来有点。接下来我要讲解浮点型的二分,有关于浮点型的二分,,因为整数二分需要考虑。

2023-06-24 17:56:56 92

原创 常用基础排序算法总结

平均时间复杂度O(nlogn) 最差时间复杂度O(n²) 最优时间复杂度O(nlogn) 空间复杂度O(nlogn) 不稳定 不在乎内存使用。:平均时间复杂度O(n²) 最差时间复杂度O(n²) 最优时间复杂度O(n) 空间复杂度O(1) 稳定 序列基本有序或较短。:平均时间复杂度O(n+k) 最优时间复杂度O(n) 最差时间复杂度O(n²) 空间复杂度O(n+k) 稳定 便于获取数组的最值。

2023-06-24 10:30:10 114 4

原创 冒泡/快排/归并

时隔几个月,今天我从拾起我的csdn,几天我来讲解一下冒泡/快排/归并 吧!

2023-06-23 19:47:09 95 3

原创 C++的学习之路---42(char类型和字符串)

版权声明:本文为CSDN博主「Flaming_Hang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。char类型被定义为8位的存储单元,C语言把1字节定义为char类型占用的bit数。字符串以 ’ \0 ’ 字符常量结束,所以在数组中,容量要比实际存储数多1。'x’是基本类型(char),而 "x"是派生类型(char数组)ASCII字符占用一个字节,汉字占用两个字节。char是整数类型,存储的是整数而不是字符。"x"是由两个字符组成,‘x’ 和 ‘\0’

2022-12-26 18:36:19 318

原创 C++的学习之路---41(C++string类常用方法)

17、string.rfind() 与 string.find() 方法类似,只是查找顺序不一样, string.rfind() 是从指定位置 pos (默认为字符串末尾)开始向前查找,直到字符串的首部,并返回第一次查找到匹配项时匹配项首字符的索引。6、获取string对象的长度,C语言中使用strlen()来获取字符串长度,C++中使用str.size()或str.length().21、string.find_last_not_of() 方法在字符串中查找最后一个不包含在参数中的字符。

2022-12-26 18:34:34 83

原创 C++的学习之路---40(round函数)

【代码】C++的学习之路---40(round函数)

2022-12-26 18:30:10 384

原创 C++的学习之路---39(floor函数)

【代码】C++的学习之路---39(floor函数)

2022-12-26 18:28:33 757

原创 C++的学习之路---38(ceil函数)

【代码】C++的学习之路---38(ceil函数)

2022-12-26 18:26:10 903

原创 C++的学习之路---37(利用ASCLL码来实现花式输出”Hello world“)

我看到经常有人尝试花式输出”hello world“,但他们大都是用指针等来实现这个,我尝试了一个能够降低门槛的方式。(其中的ascll码就不写了,自行参考第一个程序输出的数据,依次将helloworld的ascll码输入)利用它将所有的ascll码对应的数输出。运行之后就能实现效果。

2022-12-26 17:02:10 372

原创 C++的学习之路---36(为什么子类对象可以赋值给父类对象反过来却不行?)

因为子类继承自父类,父类有的子类全部都继承下来了。所以如果子类对象赋值给父类对象,那么这个对象只能访问子类的父类里面的内容。但是子类对父类做了扩充,也就是说,子类中有父类中没有的部分。所以如果父类对象赋值给子类对象,那么系统就会报错。

2022-12-26 16:51:32 127

原创 C++的学习之路---35(常用的数学函数以及浮点数处理函数)

在编程中我们总要进行一些数学运算以及数字处理,尤其是浮点数的运算和处理,这篇文章主要介绍C语言下的数学库。而其他语言中的数学库函数的定义以及最终实现也是通过对C数学库的调用来完成的,其内容大同小异,因此就不在这里介绍了。C语言标准库中的math.h定义了非常多的数学运算和数字处理函数。这些函数大部分都是在C89标准中定义的,而有些C99标准下的函数我会特殊的说明,同时因为不同的编译器下的C标准库中有些函数的定义有差别,我也会分别的说明。如果大家想了解C89以及C99请参考:www.cnblogs.com/

2022-12-26 16:42:19 1039

原创 C++的学习之路---34(C++ 类的静态成员变量为什么一定要初始化)

我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。编译以上代码会出现“对‘A::a’未定义的引用”错误。这是因为静态成员变量a未定义,也就是还没有分配内存,显然是不可以访问的。因为类中的静态成员变量仅仅是声明,暂时不需分配内存。

2022-12-26 16:38:39 164

原创 C++的学习之路---33(C++拷贝构造函数的形参为什么一定要是引用)

仔细一看p=p1,又会调到拷贝构造函数,再将p1赋值给拷贝构造函数的形参p,即p=p1,仔细一看又是p=p1,再次调到拷贝构造函数,再将p1赋值给拷贝构造函数的形参p,即p=p1,这样就会形成无休止的递归调用从而导致栈溢出。下面代码用p1去初始化p2,会将p1传入到Person(const Person &p),拷贝构造函数的形参相当于const Person &p=p1;以上修改拷贝构造函数形参传的是值,此时拷贝构造函数的形参相当于const Person p=p1;今天,就为大家讲解一下为什么。

2022-12-26 16:34:44 100

原创 C++的学习之路---32(关于signed main()不报超时与int main ()报超时)

所以主函数中的int会被编译器翻译成long long 从而使程序运行失败,所以此处要用signed!因为在C++中main函数的要求很严格其返回值类型必须是int或者是signed而因为前面有。其实signed很少用,出现它的原因主要是因为出现了。

2022-12-22 18:34:34 907

原创 C++的学习之路---31(math头文件堆中重复定义问题)

发现,在这一部分,存在一个变量 y 0 y0y0 和 y 1 y1y1。所以当我们用math头文件的时候,不能在全局定义 y 0 y0y0 和 y 1 y1y1,j 0 j0j0、j 1 j1j1、j n jnjn、y n ynyn都不行。之前刷题的时候刷到了一道关于计算三角形面积的问题、这章我并不是为了讲解这道题而是关于用了math头文件发生了重复定义的问题。经过科学上网,我发现是在math头文件中有一个定义。

2022-12-22 17:37:21 135

原创 C++的学习之路---30(面向对象之多态)

非虚成员也可以在派生类中重新定义,但派生类的非虚成员不能通过基类的引用访问: 也就是说,如果在上面的例子中area的声明中删除了virtual,那么对area的三个调用都将返回0,因为在所有情况下,都将调用基类的版本。在本例中,不同但相关类型的对象使用唯一类型的指针(Polygon*)引用,每次都调用适当的成员函数,因为它们是虚的。因此,从本质上讲,什么虚拟关键字是允许派生类的成员具有相同的名称作为一个基类的适当从指针,更准确地说,当指针的类型是一个指向基类的指针指向派生类的对象,在上面的例子中。

2022-12-14 22:07:02 51

原创 C++的学习之路---29(面向对象之继承)

如果子类显示定义了拷贝构造,没有显示调用父类的拷贝构造或父类的构造函数,子类的拷贝构造会自动调用父类的默认构造;父类中的所有成员,除过父类的private成员不可见,访问权限为public会变成protected,在子类中可以被访问,类外不能访问。父类中的所有成员,除过父类的private成员不可见,其他成员的访问权限在类外都是私有的。父类的成员需要调用父类构造完成初始化,不能在子类的初始化列表中直接初始化父类的成员。子类的显示拷贝构造,初始化列表中可以显示调用父类的构造,也可以调用父类的拷贝构造。

2022-12-14 22:04:21 39

原创 C++的学习之路---28(面向对象之封装)

类中的数据和方法称为类的成员。cout

2022-12-14 22:01:55 57

原创 C++的学习之路---27(快速排序)

循环结束后的 i j 碰面的时的值肯定是要 大于 key的 此时再交换key与索引位置 相当于把比key大的值放到了key左边 也就违背了快排的条件。先从左边开始的话 也就是先从 i 的 while 循环开始 停留的值肯定是 小于key 的 交换后小于key的被放在了key左边 不符合降序。假如key在左,先从右边开始 最后停留的值肯定是大于key的值 也就是交换后大于key的放在key左边 小于key的放在key右边。这是因为快速排序从右边开始的原因是因为选择的基准值key一般都是最左边的元素。

2022-12-14 21:58:20 57

原创 C++的学习之路---26

一群小孩 围成一圈,任意假定一个数m,从第一个小孩起,按顺时针方向数,每数到第m个小孩时,该小孩便离开。小孩不断离开,圈子不断缩小。最后,剩下的一个小孩便是胜利者。

2022-11-27 10:54:21 398

原创 C++的学习之路---25

一群小孩 围成一圈,任意假定一个数m,从第一个小孩起,按顺时针方向数,每数到第m个小孩时,该小孩便离开。小孩不断离开,圈子不断缩小。最后,剩下的一个小孩便是胜利者。这个代码并没有利用什么高级算法,只是简单的利用了最基础的数据结构---数组,来解决的,适合于C++新手来锻炼思维,在下一章,我会为大家讲解用vector来解决这件事。分析一下这个代码,这个代码适合初学者,但是C++小白就不要妄想了,请你们学习好基础再来学习这个问题。今天这章我为大家讲解一下约瑟夫环的问题,上面就是这道题的例子。

2022-11-27 10:33:09 494

原创 C++的学习之路---24

在上一章节(23)为大家浅浅的讲解了指针!!!在这一章节就为大家讲解指针数组和数组指针!!!首先,理解一下数组指针和这两个名词:“数组指针”和“指针数组”,只要在名词中间加上“的”字,就知道中心了——数组的指针:是一个指针,什么样的指针呢?指向数组的指针。指针的数组:是一个数组,什么样的数组呢?装着指针的数组。然后,需要明确一个顺序:()>[]>*,所以:(*p)[n]:根据优先级,先看括号内,则p是一个指针,这个指针指向一个,数组长度为n,这是“数组的指针”,即数组指针;

2022-11-20 15:23:01 70

原创 C++的学习之路---23

今天,我为大家讲解C++中的指针!!!

2022-11-20 15:19:42 228

原创 C++的学习之路---22

在21章的时候我为大家讲解了汉诺塔所需的最优解,在这章我为大家讲解如何实现,或者说如何玩汉诺塔这个游戏。//将第n个圆盘从A柱移动到C柱。//将n-1个圆盘从B柱移动到C柱。//将n-1个圆盘从A移动到B。22章到此结束,希望能对大家有帮助!

2022-11-12 14:37:18 812

原创 C++的学习之路---21

今天我和大家分享一下汉诺塔这个游戏,当然这个游戏带给我的不是快乐而是痛苦!至于如何玩汉诺塔这个游戏,我将在下一章为大家讲解。大家好,我又和大家见面了!

2022-11-12 14:22:04 819

原创 C++的学习之路---20

首先,理解一下数组指针和指针数组这两个名词:\n\n“数组指针”和“指针数组”,只要在名词中间加上“的”字,就知道中心了——\n\n数组的指针:是一个指针,什么样的指针呢?指向数组的指针。\n\n指针的数组:是一个数组,什么样的数组呢?装着指针的数组。\n\n然后,需要明确一个优先级顺序:()>[]>*,所以:\n\n(*p)[n]:根据优先级,先看括号内,则p是一个指针,这个指针指向一个一维数组,数组长度为n,这是“数组的指针”,即数组指针;\n\n*p[n]:根据优先级,先看[],则p是一个

2022-11-05 14:05:28 39

原创 C++的学习之路---19

(2)如果在字符串内部需要使用双引号,那么在字符串的外面就使用单引号;如果在字符串内部需要使用单引号,那么在字符串的外面就使用双引号就可以解决这类问题啦~(1)字符串同列表和元组等数据类型一样,都是可以通过[]的方式访问字符串的每一个元素的,只不过需要在[]内部加上想要查找的数据的索引值。(3)index方法:使用该方法可以找到子串在母串中第一次出现的索引值(即第一次出现的位置)(2)由于字符串是有序序列,那么字符串就可以通过循环遍历的形式输出储存在字符串的每一个字符。使用格式为:len(字符串)

2022-10-29 11:38:25 41

原创 C++的学习之路---18

3.执行到getch()函数时,光标闪动,等待输入字符:输入字符,并不能看到你输入的字符,屏幕仍是;1.执行到getchar()函数时,光标闪动,等待输入字符:输入字符后无变化,需要按回车键, 按回车键后,getchar读取了这个字符,并将其赋值给变量a。2.执行到getche()函数时,光标闪动,等待输入字符:输入字符后,不需按回车键,在输入后,getche立即读入并赋值给b。2.getche()和getch()不需要将输入的字符保存在缓冲区,而是即输即取,也就是说,一输入一个字符,它立即直接读取;

2022-10-29 11:34:17 42

原创 C++的学习之路---17

防止程序执行完后闪退,也可以用goto...语句,或者 头文件:stdlib.h 下的system("pause");1)windows平台下ENTER键会产生两个 转义字符 \r\n,因此getch返回13(\r)。3.在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。

2022-10-29 11:33:10 160

原创 C++的学习之路---16

我们在上一篇-15讲了getchar()的用法撒,这篇我将继续为大家讲解getche(),并且为大家进行区分。getchg功 能: 在window平台下从控制台无回显地取一个字符,在linux下是有回显的。getche功 能: 输入后立即从控制台取字符,不以回车为结束(带回显)#include //window 平台。initscr();#include //linux 下。

2022-10-29 11:31:33 474

原创 C++的学习之路---15

通过运行结果可以看到,当我们输入密码然后回车后直接变成“请输入密码(Y/N):登录失败”,但我们预想的效果应该是输入密码回车后打印“请输入密码(Y/N):”然后等待我们输入,但它直接跳过直接打印失败了。解释:用户输入一个字符,getchar()读取用户输入的字符并把读取的字符赋值给ch变量,然后打印这个字符,如果没有读取结束就会继续循环,否则退出循环。1.首先输入数据,存入缓冲区,scanf()取走缓冲区中空格前的数据即:“123”,缓冲区遗留数据为:空格321\n。//清空缓冲区,把遗留的\n清除。

2022-10-29 11:25:24 253

原创 C++的学习之路---14

将输入的字符串 “conputer” 送给字符数组 str(注意,送给数组的共有9个字符,而不是8个字符),返回的函数值是字符数组 str 的起始地址。一般用 gets 函数的目的是向字符数组输入一个字符串,而不大关心其函数值。原文链接:https://blog.csdn.net/qq_38374864/article/details/71141381。其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。注意:用 puts 和 gets 函数只能输出或输入一个字符串,不能写成。

2022-10-29 11:22:20 48

原创 C++的学习之路---13

根据表达式来看, endl 会作为一个可以供 cout 接收的对象往前传,而 ++i 和 endl 结合起来作为一个可以供 cout 接收的对象往前传,依次递推下去。这两个也包含在 std 中,即其全称分别是 std::oct 、 std::dec 、 std::hex ,这三个控制符包含在库 < iostream > 中。这样,后面程序中可以直接使用 cout ,而且std中的其他名字也可以直接使用,如 cin 、 endl 等。(因为i的值是 5 ,所以所有 i 的引用都是 5 )

2022-10-29 11:21:00 428

原创 C++的学习之路---12

cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕。在理解cin功能时,不得不提标准输入缓冲区。

2022-10-29 11:19:10 47

原创 C++的学习之路---11

m.nf :表示总共输出 m 位,其中小数占 n 位,右对齐,不足m位则左端补空格,m 位包含小数点。输出:printf("%c",c),printf("%s",s.c_str())1.当展示宽度(5位)>示例宽度(3位):printf("%5d,", m);2.当展示宽度(2位)

2022-10-29 11:16:47 70

原创 C++的学习之路---10

因为scanf必须从缓冲区读入一个非空字符再回车才会刷新缓冲区,这里scanf已经把“432432432”读入变量,缓冲区里就为空了,所以必须输入一个非空字节,这样按回车才会结束scanf输入。scanf格式化输入中有多个空格和’\n’,但是我们采用的是%d格式化输入,所以空格和’\n’等转义字符是没有读入的,这里有一个”%*3d”,意思是跳过输入的前三个整型数字,从第四个数字开始读入,所以我们输入“432432432”,输出的却是432432,而不是432432432.各个变量的地址之间同","分开。

2022-10-29 11:15:06 53

原创 C++的学习之路---9

今天为大家带来快捷应用菜单的编程。

2022-09-22 19:06:56 214

原创 C++的学习之路---8

x(%X) 十六进制整数

2022-09-22 19:03:39 170

战狠工作室——《猜数字1:起源》.exe

战狠工作室——《猜数字1:起源》.exe

2022-10-12

1-100 随机数.exe

1-100 随机数.exe

2022-10-11

空空如也

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

TA关注的人

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