自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 函数模版和类模版

如果你自己写了一个函数,又写了模版,在你自己写的这个函数可以用的情况下,会优先调用你自己写的,但是如果编译器用模版生成的更适合的话,还是会调用编译器的。于是,C++的祖师爷本贾尼博士便引入了一个模版的概念,我们写一个模版给编译器,让编译器用这个模版自己生成函数,就像这样。要写多个函数才能完成不同类型交换的任务,这若干个函数的逻辑基本相同,但是由于类型不同,不能写成同一个函数。函数模版代表了一个函数家族,该函数模版与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。模版是泛型编程的基础。

2024-07-21 07:03:32 268

原创 类和对象(下)

没有显式实现的话,如果给了缺省值,就会用缺省值进行初始化,如果没有缺省值,对内置类型处理看编译器,对自定义类型则会调用自定义类型的默认构造,没有默认构造就会报错。内部类的本质是一种封装,如果A类和B类紧密相连,且A类设计出来主要是给B类使用,那么可以考虑把A类设计成B类的内部类,如果放到private/protected位置,那么就是专属内部类,其他地方用不了。内部类是一个独立的类,跟定义在全局相比,内部类只是受外部类类域和访问限定符的限制,所以外部类定义的对象中不包含内部类。

2024-07-17 09:06:13 305

原创 类和对象(中)

不写的话编译器会自己默认生成一个无参的构造函数,这个构造函数对内置类型怎么处理C++标准中没有规定,有些编译器什么都不干,有些编译器可能会把内置类型初始化为0,但是我们一般认为编译器自己生成的构造函数对内置类型什么都不干,而对于自定义类型,编译器会调用自定义类型的默认构造函数(没有的话会报错)赋值运算符只能作为当前类的成员函数重载,这是规定,赋值运算符的重载的参数建议写成当前类const的当前类对象的引用(不传引用也行,但是会有一次拷贝,这样会降低效率)成员变量不指向资源的情况下,默认生成的就可以用了;

2024-07-14 14:42:49 773

原创 类和对象(上)

class为定义类的关键字,student为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是。

2024-07-10 16:40:13 592

原创 C++初接触

1、namespace只能定义在全局,当然他还可以嵌套定义。下图为嵌套定义的例子:2、项⽬⼯程中多⽂件中定义的同名namespace会认为是⼀个namespace,不会冲突。比如:如果函数的定义和声明在不同的文件中,这两个文件都可以定义名字相同的命名空间,编译器会认为这是同一个命名空间。3、C++标准库都放在⼀个叫std(standard)的命名空间中。

2024-07-09 15:34:50 764

原创 C语言排序

生活中排序随处可见,比如我们高考时的排名,大学学校水平的排名等,打开京东,可以发现每样商品按照不同的方式排序,比如综合,销量,价格。其内部需要排序代码来完成。

2024-06-05 18:56:48 1550

原创 二叉树经典OJ

思路:若两根都是空,说明两树是相同的树;若两根有且只有一根为空,则说明两树不是相同的树;若两节点都不为空,则比较节点的值,不相等返回false,相等继续递归往下比较。思路:通过遍历把root的每一棵子树都拿去和subroot判断是不是相同的树。思路:把相同的树反过来比即可。

2024-05-23 13:15:45 218

原创 二叉树C语言代码的实现

二:二叉树的构建,我这里通过前序遍历一个数组进行构建:由于每一棵树都能分为根,左子树,和右子树,而左子树和右子树又能分为根,左子树和右子树,因此考虑递归构建。构建方法如下:若遇到‘#’或‘\0’证明是一个空节点,返回NULL,若不是空节点,该节点数据等于数组当前数据,左节点的数据等于数组下一个数据,开始递归。七、求树的第k层节点个数:若k是0,则节点数是0;四、求二叉树节点个数:树的节点个数等于1+左子树节点个数+右子树节点个数,而左子树的节点个数又等于1+左子树节点个数+右子树节点个数,因此,还是递归。

2024-05-22 18:46:28 195

原创 基本计算器

思路:数学计算有一个基本要求就是先乘除后加减,这要求我们碰到加减时先不算存储数据,碰到乘除时计算后存储数据。基于此,我们可以选择使用一个栈,加号把数据存入栈,减号把数据的相反数存入栈,乘除时取栈顶数据进行相应计算。第五步:当s遇到符号时,若前一个符号为加减,不计算直接压入栈中,乘除计算取栈顶数据与当前数据计算并将计算结果压入栈中,然后修改符号。第六步:遍历结束后,最后一个数据后面没有符号,因此不会进入第五步,要手动把第五步重新进行一次。最后,不要忘了销毁栈,防止内存泄漏,养成好习惯。第一步:先创建一个栈。

2024-05-18 20:24:49 454

原创 C语言写简易扫雷游戏

第一步:玩家选择开始游戏或者退出玩家可能想玩很多把,也可能只玩一把,所以要使用循环语句,这里选择do while 循环,在循环体内使用switch case语句,玩家输入1则开始扫雷游戏,输入0则退出游戏,输入其他则重新选择:第二步:创建和初始化数组分析:通过扫雷游戏9*9的棋盘想到使用9*9的二维数组进行初始化和设置,使用9*9的数组有不方便的地方,如果玩家点开的位置在边角的地方,需要判断这个位置在不在边角然后再统计周边雷的个数,否则会造成越界访问,如果使用11*11的数组,把最外面的

2024-03-13 13:47:22 1637 1

空空如也

空空如也

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

TA关注的人

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