- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 c++构造函数
我们不写编译器自动生成(一旦写了就不会生成),对于编译器自动生成的默认构造,内置类型不处理,自定义类走他的默认构造,(其实实质上是走初始化列表)c语言中每次写栈和队列时候,总是忘记写初始化,救会很坑导致一系列的问题,c++也看到了这个弊端,于是创造了结构体。初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟。无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个。注意:无参构造函数、全缺省构造函数、我们没写编译器默认生成的构造函数,都可以认为。
2023-09-22 00:56:40 116 1
原创 详解数据结构类型
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。2,带头节点的链表在修改phead具有优势,带头结点改变phead时候改变的是phead节点的成员,而不带头节点改变的是指针。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续。
2023-05-28 14:22:50 293
原创 时间复杂度及空间复杂度
个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。空间复杂度算的是变量的个数。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。空间复杂度也是一个数学表达式,是对一个算法在运行过程中。4、在实际中一般情况关注的是算法的最坏运行情况。EG:(二分查找的时间复杂度)
2023-04-18 01:58:24 35
原创 leetcode 2404. 出现最频繁的偶数元素
链接:https://leetcode.cn/problems/most-frequent-even-element。如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1。数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。输入:nums = [29,47,21,41,13,37,25,7]给你一个整数数组 nums ,返回出现最频繁的偶数元素。输入:nums = [0,1,2,2,4,4,1]解释:不存在偶数元素。
2023-04-14 12:25:28 168 1
原创 动态内存管理(柔性数组)
内存看做一条长长的停车场,我们申请内存就是要找到一块停车位,释放内存就是把车开走让出停车位。只不过这个停车场比较特殊,我们不止可以停小汽车、也可以停占地面积很小的自行车以及占地面积很大的卡车。1.我们如果想获得一块可大可小,空间不够了可以增加,空间大了可以缩小。关于malloc是如何申请内存的,推荐看这篇文章,写的超级棒。这样只能获得固定的空间,程序一跑空间就改变不了。可以动态的管理一块数组空间,个人感觉这个很有用。此时tmp指向一块开辟好的40个字节的空间。realloc也可以开辟一块空间,如。
2023-03-26 17:27:22 266 2
原创 结构体内存对齐的秘密
这个程序的结果是8,看到这里我们可能会好奇:求s的大小一个char,一个int,应该是5啊怎末会是8呐,其实这里存在结构体对齐。2.从第二个成员开始,该成员要对齐到某个对齐数的整数倍出,这个对齐数是:成员自身大小和默认对齐数的最小值。3.结构体的总大小必须是所有结构体成员的最大对齐数的整数倍处。3.结构体的总大小必须是所有结构体成员的最大对齐数的整数倍处。但是结构体的总大小必须是到8的倍数处,故要再浪费4个字节。虽然对齐到int的时候整个结构体的大小是20个字节。较小者是8应该对齐到8的倍数处。
2023-03-21 20:08:52 171 2
空空如也
我写了个幽灵代码,怎末回事
2022-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人