
C++
文章平均质量分 74
xinger_28
努力任何时候都不会迟
展开
-
C++ 扫雷,排雷小游戏
界面:游戏思想:扫雷游戏: 1.随机给定雷点坐标 2.判断每个点的雷情况 3.由用户根据上下左右键到达指定位置,点击enter,翻开该点 如果该点是雷点,此时翻开所有雷点,告知游戏结束 非雷点,翻开该点坐标代码:#include<iostream>#include<vector>#include<sstream>#include<algorithm>#include<...原创 2020-05-17 15:43:56 · 667 阅读 · 0 评论 -
public、private、protected
类的权限: 类的权限高低:public>protected>private 权限理解:基类中:public 类中(√) 类外(√) 基类中:protected/private 类中(√) 类外(×) 派生类中: public继承:public:类中(√) 类外(√) protected 类中(√) 类外(×) private:基类中的private在派生类中被隐藏了...原创 2020-05-13 12:02:10 · 274 阅读 · 0 评论 -
private下的静态成员
private下的静态成员变量: 实际上在非继承状态下,private与protected所展示的效果一样。Private下的静态成员函数: 实际上在非继承状态下,private与protected所展示的效果一样。总结:静态成员函数依旧受private权限控制。 理解:从一个角度而言:静态成员不属于该类,因此它本不应该被类的权限所控制;从另一个角度:将该类当做一个“命名空间”,静态成员属于该命名空间的全局变量/函数,这个“命名空间中...原创 2020-05-13 10:47:22 · 687 阅读 · 0 评论 -
NULL与nullptr
原创 2020-05-12 16:27:20 · 182 阅读 · 0 评论 -
循环队列---顺序队列
在前两篇中讲述了顺序队列中的队头移动与不移动两种顺序队列,今天讨论顺序队列中的循环队列,这种循环队列是用一维数组实现的。在队头移动的情况下,根据元素个数与队列容量之间的数量关系来解决假溢出问题。从上图中我们可以理解为什么这种队列结构可以解决假溢出问题,但是随之而来,我们要如何判定循环队列已满呢?在此处我有三种办法:其一,牺牲一个存储单元,使得一旦插入时发现元素个数已经达到最大元素个...原创 2019-01-28 19:18:15 · 683 阅读 · 0 评论 -
顺序队列-------队头移动
队列概念:队列允许在队尾插入,队头删除,具有先进先出的特性。上一篇讲述了顺序队列中的队头不动,现在讲述队头移动的队列。如上图所示,这是队头移动的,意味着这个顺序队列进行删除时,队头指向会越来越靠后,队头指向之前将会是空,意味着最终将会导致看似队列已满,实则有多余空间,但是已经无法入队。如下图所示顺序队列之队头移动优点:解决了数据搬移的耗时问题缺点:会造成假溢出现象。...原创 2019-01-27 19:42:18 · 1356 阅读 · 0 评论 -
顺序队列--------队头不动
队列概念:只允许在队尾进行插入操作,在队头进行删除操作,具有先进先出的特性。队列分为顺序队列以及链表队列,顺序队列分为队头不动与队头移动量种。今天一篇讨论队头不动的顺序队列。在图中我们可以看出队头front始终指向0,rear始终指向实际大小的位置,因此在进行队尾插入时较为容易,但在队头删除时需要进行搬移数据,耗费时间。由于队头始终指向0,因此不会出现假溢出现象。 因此,这...原创 2019-01-27 19:25:42 · 741 阅读 · 0 评论 -
1+2+...+N
求1+2+...+N的和两种算法:1.循环算法:用一个变量sum记录和,一个变量i记录此时加数的大小,是否达到N,若没有,继续加,若N==i,返回2.递归算法:即数为N+(N-1)+...+2+1,判断N的大小,若N<2,返回1在进行检验时,因为输入数据的局限性,因此 我利用随机数进行检验,检验的方法为,用循环算法得出的结果减去递归算法得出的结论,最后看结果是否为0,为0表示...原创 2019-01-23 19:17:43 · 986 阅读 · 1 评论 -
N的阶乘
求N的阶乘有好些中方法,在此处,我用两种方法进行计算,并且进行检验。求N的阶乘:!N=N*(N-1)*(N-2)*...*2*1在求N的阶乘就意味着求N* (N-1)的阶乘,依次类推,因此:1.用循环算法时,需要控制N的最大限度,用1*2*3*...*N2.用递归算法时,需要控制递归不再进行的条件,即N的最小限度为1,因此条件不再继续为N<2时,返回1在进行检验时,因为输...原创 2019-01-23 19:10:33 · 4178 阅读 · 0 评论 -
迷宫
迷宫要求:给定入口,找出出口,并且打印出路径。 如这样的一个矩阵,1表示此路可以走,0表示此路不可以走,给定起始位置,即入口,通过对每一个方向的搜索,确定下一步的位置,一直循环,直到找到出口。 用一个简单的类将栈进行封装。栈中成员变量有x,y的坐标,和size栈中元素的个数(其实可以不需要,但是为了方便下标的确定,在此我写上。)栈中成员函...原创 2019-01-23 18:56:45 · 376 阅读 · 0 评论 -
申请空间 new、delete
new/delete 出现的背景: 在C语言中,我们申请空间用malloc,calloc,realloc,释放空间为free,在这样的空间申请后,我们需要对申请空间的状态,进行判断,判断是否申请成功,并且需要对没有申请成功的变量进行处理,在这样的情况下,人们难免可能会忘记判断,导致程序出现异常。new/delete 实现的原理: new、delete ,new[] ,d...原创 2018-11-27 14:53:25 · 1627 阅读 · 0 评论 -
简易的 一个 Date类(日期类)
Date 日期类Date类需要包括三个成员变量,年,月,日,注意年月日皆应该使用整形。对日期 类,需要判断是否为闰年,因此决定2月的天数,并且要使用重载运算符相关的知识用来解决对日期类对象的输入与输出。bool operator==(const Date& d); //== bool operator!=(const Date& d); //!= bool ope...原创 2018-11-18 23:23:55 · 370 阅读 · 0 评论 -
C++,函数重载
背景:C语言中没有函数重载。在大型软件工程中,几个功能相同的函数,容易出现相同名称的函数,出现函数重定义,为了避免这种问题,因此,给函数起符合函数功能的不同名字 便成了 程序猿 的 一大难题,在此 背景下,便出现了 函数重载。 小小问题:“小心地滑” 从字面上 理解 ,有 几重 意思?概念:函数重载: C++允许在 同一作用域中 声明 几个同名函数,但这些同名函数的参数...原创 2018-11-09 17:31:27 · 99 阅读 · 0 评论 -
C++语言,命名空间,namespace关键字
命名空间,简而言之,这是一个“空间”。出现背景:因为在C语言中定义了三个层次的作用域:文件作用域、函数作用域和复合语句。但是在大型的软件工程中,一个项目由多个人完成,有多个文本文件,就很有可能出现 同名 变量、函数,在进行调用时,编译器不知道该调用哪一个函数,或者使用哪一个变量的值,因此在编译过程中很可能发生多重定义,或者发现结果出现问题。定义:定义命名空间,需要使用到 names...原创 2018-11-09 15:10:53 · 1643 阅读 · 0 评论 -
C++语言,缺省参数
背景:C语言中不支持缺省参数。有时用户忘传参,则程序将会报错,因此我们可以设置一个“默认值”或者说最合适的值,当用户忘传参数时,依旧可以将程序进行下去。概念:缺省参数是声明或 定义函数 时为 函数的参数 指定一个 默认值。在调用该函数是,如果没有指定 实参 则采用 该 默认值, 否则使用指定的 实参。分类:(1) 全缺省参数:在函数 参数列表定义时,将所有变量都初始化。...原创 2018-11-09 16:19:49 · 1030 阅读 · 0 评论