- 博客(27)
- 收藏
- 关注
原创 继承和多态
定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实3.现这个函数。1.访问声明仅仅调整名字的访问,不为它说明任何的类型,如果是成员函数则不准带任何的参数。如果在子类中还创建了父类的对象,那么构造函数还需要加上这个对象的构造函数调用。如果父类的构造函数有参,那么子类的构造函数必须使用在构造函数中默认初始化。因为:Dospeak函数传的是Animal类调用的也是该类的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。
2023-12-01 18:10:14
67
原创 leetcode ----数组专题
上面for循环的第一层一直是成立的,可以把第一层for循环简化,即slow和fast都从1开始,此时不能比较。这里的for中 j 代表的是后指针,如果循环 i 指针最终效果和暴力算法是一样的。所以比较: nums[fast] = nums[fast - 1]fast指针遇到非#元素,则:s[slow++] = s[fast++]1.大体思想:x的平方根(保留整数)就是k。(1)找到中间绝对值最小元素,向两侧延伸。然后开始移动前窗口,找到合适的最小长度。因为要找出k的最大值,所以应该。
2023-11-28 20:08:46
87
原创 图的应用------复习使用
最小生成树就是生成树中权值和最小的生成树 看以前的文章AOV网:可以用来缩短工程注意区分事件和活动:在AOE网中:活动是线,事件是结点
2023-11-28 17:33:01
67
原创 官方markdown教程
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2023-11-16 11:58:36
29
原创 栈的压入、弹出序列
相等则st.pop(),popVid++,继续while循环。2.while循环判断st栈顶元素是否和popVid相等。判断是否匹配的条件就是for循环结束后st是否为空。3.然后进行下一个for循环,pushVid++1.将pushV中的一个元素放入st栈中。不相等则 退出while循环。
2023-11-11 16:40:30
30
原创 运算符重载
1.关于private 我把age和num的定义在了private导致main函数中不可访问。上面的这种写法,返回一个空,当cout中有多个 << 时无法继续,需要返回一个。注意:返回的时一个值,而不是地址 所以只能使用一个++应该使用p.age 而不是 p->age。即()的重载,又叫伪函数,就是给()赋予新的意义。返回*this是为了可以连续使用后缀。2.关于引用:(其实就是一个别名)六:函数调用运算符重载。
2023-11-09 18:29:59
26
原创 数据结构习题集(树)复习用
这是一个3阶的B树,1.每个结点最多有2个关键字。2.根结点(9)最少可以只有1个关键字。3.非根结点至少有1个关键字4.满足每个节点中的关键字小到大排列注意一下删除时:需要保证节点的关键字数量在 n/2-1 - n-1。
2023-11-08 21:51:09
42
1
原创 构造函数、拷贝构造函数相关
如图,如果没有无参构造,那么创建对象是必须要赋值相关的参数。通过使用this指针,我们可以确保。最基础的东西就不重复写了。
2023-11-06 14:16:45
35
1
原创 this指针的作用
3.在成员变量初始化列表中使用this指针:在类的构造函数中,可以使用成员变量初始化列表来初始化成员变量。如果成员变量的名称与参数名称相同,可以使用this指针来区分它们。在成员函数中使用this指针:当成员函数需要返回当前对象本身时,可以使用this指针来实现。这通常用于链式调用或实现某种操作的连贯性。
2023-11-06 14:11:50
48
1
原创 二叉树(复习用)
所以要把没有结点的地方用一个空结点补上。使得最后的所有的叶子节点都是空结点。已知二叉树的中序遍历顺序为DBAGEHCF,后序遍历顺序为DBGHEFCA,求该二叉树的前序遍历。然后分别看左子树和右子树这一团,按照同样的方法再次细分即可。递归实际上就是一个栈的原理,所以就可以借助一个栈来代替递归。层次遍历需要使用到队列(先进先出)后序遍历的最后一个结点一定是根节点。在A左面的是左子树,右面的是右子树。使用先序序列建立二叉树的二叉链表。输入的时候 # 表示空结点。然后看A再中序中的位置。略(见课本174页)
2023-11-05 20:17:37
40
1
原创 链表的反转
一:双指针法两个指针cur 表示当前处理指针per 表示当前处理结点的前驱指针需要完成的任务就是:通过循环:依次把两个结点指向反转,然后per和cur两个指针需要向后移动一位来反转其他指针因为将链表反转,a需要指向NULL,所以per初始化先从head开始循环:cur = head;第一次循环:然后per和cur需要向后移动一位:此时就需要创建一个临时指针temp。
2023-11-03 20:26:53
25
原创 二:最短路径问腿
通俗来说就是第一轮大循环先找到跟a点直接相连的点,并把其中最短的点标记一下,然后通过该点为跳板更新更新与这个点直接相连。的点到a点的最短距离,然后开始后面的几轮大循环,a点到各个点的最短距离也就会浮出水面。所以计算量比较大,不适用于大规模的数据,时间复杂度n三次方。特点:从一个起点出发可以求该点到任意一个点的最短路径、让任意一个点做借助点找到任意两个点之间的最短路径。最短路 - 蓝桥云课 (lanqiao.cn)特点:可以求任意两个点的最短路径。2.dijkstra算法(注意单向和双向的问题。
2023-11-02 21:33:50
21
原创 C++ 文件
函数原型:istream &getline( char *buffer, streamsize num );2):第一个参数一个char型指针(指向内存数据的起始地址),与对象结合使用的时候,要在对象地址之前要char做强制类型转换。getline():以行为单位 读入内存,能一次读入一行。函数声明:ostream & ostream :: write ( char * buf , int n );注意:1):该函数遇到空字符时并不停止,因而能够写入完整的类结构。①:ofs
2023-11-01 16:30:03
32
1
原创 找数组中重复数字(修改数组和不修改数组)
给定一个长度为 n 的整数数组nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
2023-10-30 23:44:56
32
1
原创 数据结构---前缀中缀后缀表达式及其转换
前缀表达式,指的是不包含括号,运算符放在两个运算对象的前面,严格从右向左进行(不再考虑运算符的优先规则),所有的计算按运算符出现的顺序。eg:例如:中缀表达式。
2023-10-28 20:59:14
922
原创 代码分析(!!!!!!重要!!!!!)
函数中,使用了迭代器来遍历向量,但是在循环体中又使用了箭头运算符来访问成员变量,这是不正确的。这会导致原来的指针丢失,无法正确访问到向量中的学生信息。,但是这个对象并没有被添加到向量中,所以向量中只有一个元素。是一个指针,但是在函数内部又被重新定义为一个。关键字来释放内存,这会导致内存泄漏。并没有被初始化,它的值是不确定的。关键字来动态分配内存,但是没有使用。函数中,创建了一个新的。函数时,传入的参数是。
2023-10-18 19:31:58
23
1
原创 c++实验二之vector容器的使用
因而在内部修改指针本身即修改其副本并不影响外部的指针,但是两个指针都是指向同一个内存空间的,因而如果在函数内部修改了指针指向的内容,外部指针指向的内容也就相应改变了。① 传递的是对象,就是将对象拷贝并传递给push_back,如果后续再改变对象的值,vector中的值不会改变。②传递的是指针,就是将指针拷贝并传给push_back,通过指针改变对象的值,vector中的值也会发生改变。这里因为结构体指针使用new分配的内存,所以结构体并用结构体指针来给结构体赋值,所以结构体是储存在堆中的。
2023-10-18 18:00:45
222
1
原创 C++ 之 文件的读写(实例)
在读取数据文件时可以按行读取数据并存储到字符串中,然后通过istringstream字符串分割开,并存储到相应类型的变量中。我们也可以传递一些可选的参数,如字符串中的起始位置和数基。它不能处理数字前的其他字符,如果发现一个,就会抛出异常。strstream类同时可以支持C++风格的串流的输入输出操作。istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C++风格的串流的输出操作。strstream类同时可以支持C++风格的串流的输入输出操作。
2023-10-18 17:24:11
161
1
原创 数据结构---括号匹配算法
所以我推测是因为它们有共享的内存,这个问题等以后有时间再解决,代码(就是把main函数中自己定义几个str就行)1.当一次性定义多个字符串str1,str2.....会发现同一个代码运行多次但是会出现不一样的结果。
2023-10-15 19:49:23
174
1
原创 关于x++,括号运算符,逗号运算符的综合运用(新手感悟)
C选项:z=(x++,++y,y++);的意思就是依次进行x++ ++y y++然后把最后一项即y++得到的值赋给z。括号中依次算x++,++y,到这时++y已经加一得到y=2,再进行y++,秉持先用后加。A选项:z=x++,++y,y++;的意思就是(z=x++),++y,y++;x++的问题我一直都是 似懂非懂,今天刷到一个题,借此机会好好的研究了一下。后加:如果在程序下一个语句再写上printf输出y的值,会发现y=3。这个大家都知道,可是这个x++到底怎么个先用后加呢?
2022-12-08 16:54:19
1348
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人