- 博客(31)
- 收藏
- 关注
原创 (C++)初始化列表
在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量 的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。比如:初始化是在定义的时候初始化的,只有一次!那么类中的成员函数如何进行初始化呢?
2023-08-02 20:53:29 52
原创 (C++)拷贝构造
这里 d 相当于要被拷贝的对象的别名,也就是下面d1的引用,然后我们将d 中的成员依次赋值给创建的对象。两者指向同一块空间,那s1,s2在销毁时,都要调用析构函数,这块空间就相当于释放了两次,所以程序崩溃了!答:当然要写,对于日期类来说,可以不写,默认生成的就可以了。为了提高程序效率,一般对象传参时,尽量使用引用类型,返回时根据实际场景,能用引用 尽量使用引用。我们说,拷贝构造函数时默认成员函数,那么若未显式定义,编译器会生成默认的拷贝构造函数。像这种,没有写拷贝构造,用默认的就会崩溃!
2023-08-01 18:08:07 66
原创 (C++)构造函数
内置类型不处理class Datepublic:private://2.内置类型不作初始化处理int _year;int _month;int _day;d1.print();return 0;全是随机值,没有进行处理。自定义类型才会处理,会去调用这个自定义类型成员的默认构造函数!!!public://构造函数//证明被调用,随便写的。int _top;
2023-07-26 20:57:33 52
原创 数据结构————二叉树 之 堆
如果有一个关键码的集合K={.......},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki<=K2*i+1且Ki<=K2*i+2(Ki>=K2*i+1且Ki>=K2*i+2)i=0,1,2...,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。示意图:简单来说,小堆:孩子大于父亲。大堆:父亲大于孩子。
2023-06-07 18:03:38 70
原创 数据结构————栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。
2023-05-20 09:24:37 86
原创 链表OJ————复制带随机指针的链表
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y。
2023-05-05 17:01:51 91 1
原创 C语言————程序环境
从源代码到可执行程序,再到输出。这里面有太多的隐藏了的过程,我们无法看到。但却是真实存在的。了解他们使我们更加了解计算机的世界。欢迎批评指正。!!
2023-04-08 10:07:34 272 1
原创 C语言————自定义类型(结构体)
结构体是一些值的集合,这些值称为成员变量。结体构的每个成员可以是不同类型的变量。我们已经介绍了如何创建一个结构体,那么如何使用呢?下面来看:int main()//创建结构体变量return 0;//定义结构体类型struct Stu//成员变量int age;}s3,s4;// 结构体变量这两种创建方式在于前面的是局部变量,后面的是全局变量。
2023-03-24 15:53:24 1470
原创 C语言——字符串函数
计算字符串str的长度,直到空结束字符('\0'),但不包括空结束字符。#include//使用strlen库函数的头文件int main()printf("str长度:%d\n", strlen(str));return 0;
2023-03-18 20:05:16 589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人