自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 五、函数模板与类模板

利用模板机制可以显著减少冗余信息,能大幅度地节约程序代码,进一步提高面向对象程序的可重用性和可维护性。模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现代码的重用,使得一段程序可以用于处理多种不同类型的对象,大幅度地提高程序设计的效率。

2024-07-18 11:08:51 921

原创 四、类和对象(下)

在创建对象时,编译器会调用构造函数,给对象中的成员变量初始值。虽然上述构造函数调用后,对象中已经有了初始值,但这并不能将其称作类对象成员的初始化,,构造函数中的语句只能称为赋值。因为初始化只能初始化一次,但构造函数内可以多次赋值。构造函数初始化还有另一种方式,就是初始化列表。

2024-07-14 18:14:12 541

原创 三、类和对象(中)

按内存存储一个字节一个字节的拷贝称作浅拷贝或值拷贝。像Date这样的类,成员变量全是内置类型且没有指向什么资源,编译器⾃动⽣成的拷⻉构造完成的浅拷贝就可以完成需要的拷贝。但像Stack这样的类,虽然也都是内置类型,但是其成员变量_a指向了资源,编译器⾃动⽣成的拷⻉构造完成的值拷⻉/浅拷⻉不符合我们的需求,所以需要我们⾃⼰实现深拷⻉(对指向的资源也进行拷贝)。

2024-07-13 18:29:39 763

原创 六、日期类的实现

对于前置++/--或后置++/--的运算符重载函数,为了区分,构成重载,给后置++,强⾏增加了⼀个int形参,这⾥不需要写形参名,因为接收值是多少不重要,也不需要⽤这个参数,仅仅是为了跟前置++构成重载区分。

2024-07-13 18:09:15 118

原创 二、类和对象(上)

2. 类的访问限定符及类域2.1 类的访问限定符 3. 类的实例化3.1 实例化概念3.2 对象大小 如何计算类对象的大小类中既可以有成员变量,又可以有成员函数,那么一个类的对象中包含了什么,如何计算一个类的大小。想要解决这个问题,我们要清楚类在内存中的存储方式。 4. this指针 4.1 this指针的引入 首先定义一个日期类Date 4.2 this指针的特性 这里报错的原因是什么呢?首先看

2024-07-11 21:03:59 738

原创 一、C++基础

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。//1.正常的命名空间int val;}ST;assert(ps);

2024-07-09 19:25:39 774 1

原创 环形链表的约瑟夫问题

通过这样举例,我们可以想到使用环形链表来解决这个问题,与一般链表不同的是,环形链表的最后一个结点的指针并不为NULL,而是重新指回第一个结点。我们从1开始报数,报到2时,那个人便离开,之后便以下一个人为开始,重新报数。同时,我们也需要prev指针来记录当前遍历的结点的前一个结点。通过读题,我们可以列出一个简单的例子来理解题意。最终如图所示,剩下3。

2024-05-26 10:17:30 515

原创 单链表的应用

我们使用pcur指针进行遍历原链表,用prev存储pcur的前一个结点,next存储pcur的后一个结点,若pcur->val == val ,则需要释放pcur,此时就需要next来存储pcur的下一个结点的地址。解决:链表每个结点都有数据域和指针域组成,当5加入新链表中时,此时这个结点的指针域还是指向下一个结点,若下一个结点值为val就会造成最后一个结点值为val的结点为释放。创建一个新的链表,依次遍历原链表,找到结点值不为val的结点,依次尾插到新链表中。按照这个思路,我们可以写出如下代码。

2024-05-20 13:40:21 1580 1

原创 顺序表经典算法

因为两个数组均为升序排列,所以考虑从两个数组的最后位置比大小,将大的数字放到num1的最后,一直往前比。若只考虑移除元素,可以创建新的数组,遍历原数组,将不为val的值放到新数组中,返回新数组即可。如果l1先退出循环,可以将l2的数据直接放入l3中,再将l3向前移 最后结果如下图。2.若src指向的值不是val,nums[dst++]=nums[src++]将num2中的数据依次放入到num1数组的后面,将num1进行排序。1.若src指向的值为val,则src++双指针:创建两个指针src,dst。

2024-04-22 14:01:35 286 1

原创 动态内存管理

在c或c++中都会大量使用动态内存管理,同时使用C/C++实现数据结构时,也会使用动态内存管理目前,申请内存的方式只有两种1.1 在栈区申请内存上面的内存申请方式,一旦申请好空间,大小无法调整1.2 在堆区申请内存为了引入第二种申请内存的方式,我们可以从一个问题看起“如何描述班级的学生的数学成绩”首先我们可以想到使用数组来存储其成绩,int math[30]={0};当学生人数少于30时,空间够,但会造成浪费,当学生人数大于30时,申请的空间不够,无法达到使用需求。

2024-03-23 23:19:46 1611 2

原创 C语言基本概念

注释——对代码的说明,帮助理解,对编译器没有影响1./*……*/ 代码穿插在内部 内部可分行 不支持嵌套2.// 最普遍注释会被替换 编译时替换为空格。

2023-11-20 21:46:36 35 1

空空如也

空空如也

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

TA关注的人

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