- 博客(45)
- 收藏
- 关注
原创 c语言---基于冒泡排序模拟实现qsort排序【深入理解指针5】
qsort的头文件是#include <stdlib.h>使用方法,函数调用,并且依次传入待排序的地址,待排序的元素个数,待排序元素的字节数,以及自己实现的比较函数如果我们要设计仿造的冒泡排序去实现qsort对任意元素都可以进行排序的功能,那么我们要对参数也设计成类似于qsort,如下以上就是今天要讲的内容,以上就是今天的博客内容啦,坚持就是胜利,读者朋友们可以点个关注。
2025-02-18 23:07:55
386
原创 如何解决任务栏卡住无法使用鼠标进行点击
4.鼠标右击Windows资源管理器,点击重新启动,静待几秒,我们下面的任务栏就可以点击正常使用了。相信大家在使用电脑的时候,会出现任务栏卡住无法使用鼠标进行点击最下面一栏。3.接下来会显示一个类似于这样的窗口,找到Windows资源管理器。2.会进入一个黑色的选项框中找到任务管理器并点击。1.首先按住Ctrl+Alt+Delete键。如果对您有帮助的话,读者朋友们可以点个关注。那么我们应该如何进行解决呢?
2025-02-15 17:06:17
203
原创 扫雷小游戏实现-c语言版
本文介绍了扫雷小游戏基于c语言数组和函数的实现博主会逐步讲述扫雷小游戏的分析过程以上就是今天的博客内容啦,坚持就是胜利,读者朋友们可以点个关注。
2025-02-02 02:23:38
941
原创 关于c++中易混淆的虚函数和虚继承
多态的原理:虚函数地址放到对象的虚表(虚函数表)中,多态指向谁调用谁的本质是运行时到对象的虚表找到要调用的虚函数地址。原理:将虚基类对象放到公共位置(vs是放到整个对象的尾部),虚基表中存偏移量,来计算虚基类对象的位置。总结:记住这两个地方都用virtual关键字,他们之间没有一点关联,不要联系到一起。概念:解决菱形继承中的数据冗余和二义性问题。概念:虚函数重写是多态的条件之一。
2025-01-17 11:54:22
202
原创 JZ31 栈的压入、弹出序列
将pushV中的数据逐个压入st栈中,由于出栈的顺序未定,判断是否符合popV序列,那么可能入完第一个判断不符合,再入第二个判断符合,,当st不为空时,并且当st的栈顶数据等于popV的数据时就把st的栈顶数据pop掉,有可能弹出完,下一个数据仍可能在弹出数据中,这时我们继续进行判断。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。由于作者水平不足,如有任何错误,请读者在评论区交流!
2024-12-25 15:05:05
453
原创 list的迭代器失效
我们找到list中的erase接口,其返回值是下一位置的迭代器,也就是说我们可以使用it来接受这个值,由于是返回的下一位置的迭代器,++it会错过一个位置,这里我们可以使用if else语句来操作。当这个位置不为空的时候,我们就删除这个位置,这个时候被删除的3这个位置就成为了野指针,以图中为例,用find函数找出3这个位置,使用it迭代器接收这个位置,进行操作,当我们删除这个位置,这个时候被删除的3这个位置就成为了野指针,结果就抛异常了,这时候就出现了迭代器的失效。结果就可以对it迭代器正常操作了。
2024-12-23 23:50:52
243
原创 list的常用操作
list的介绍list是序列容器,它允许在常数范围O(1)进行插入和删除在这段序列的任意位置,并且可以双向遍历它是弥补vector容器的缺点,与vector有互补的韵味,这里我们可以将其进行与vector进行对比vector(1)可以在序列内的任意位置随机访问(2)插入和删除需要挪动数据,效率被影响list(1)不支持在任意位置随机访问(2)支持了在任意位置的插入和删除,并且是常数时间O(1)list的常见使用list的操作有很多,这里我们只介绍一些比
2024-12-20 23:13:52
672
原创 118. 杨辉三角
杨辉三角的行数我们采用vecor.resize()来进行开辟,这样我们不仅开辟了空间,size,和capacity也进行给了,每一行列数我们使用for循环逐个访问行,调用vector[].resize()进行给值,其中每行的空间开i+1个,列数是从i=0开始,以第一行为例,列数我们开1,即为i+1。这里的访问我个人认为类似于二位数组的访问,使用for循环,变量i访问行,嵌套for循环,变量j访问列,如果vv[i][j]的值不为一,那么我们就给它左上方和右上方的数的和。(1)定义二重动态数组vector。
2024-12-13 02:55:15
609
原创 260. 只出现一次的数字 III
由于异或把均出现两次的元素去除了,那么剩下的就为恰有两个元素只出现一次的,这两个元素必然是不相同的,因此32位二进制数必然是不相同的,我们可以以1来进行区分,利用val按位与1
2024-12-13 02:15:38
554
原创 137. 只出现一次的数字 II
定义一个数组,放32个元素,32个元素分别可以对应32位的二进制数,并且全部初始化位0,定义val为0,便于与最后数据进行按位或|int val=0;
2024-12-12 00:41:13
626
原创 136. 只出现一次的数字
定义val=0,用来与nums的数进行异或,将val定义为0的原因是因为0异或任何数都等于任何数,便于将出现一次的数异或到val里,使用val^=e将nums数组中的数全部异或一遍,这里我感觉要是将所有的数放在一个宏观上理解,虽然是val^=e是一个一个进行异或的,但是由于二进制进行异或累加效果等同于二进制的val去异或nums中的所有数的二进制,结果就为只出现一次的那个数。,两个相同的数进行异或,则对应的二进制的数上都相同,那么二进制上的数进行异或对应。的就是0,则两个数相同的数进行异或就消失了。
2024-12-11 23:41:11
469
原创 917. 仅仅反转字母+
定义begin为0为第一个字符的下标,使用s.size()获取字符串的长度,长度减一为最后一个字符的下标,假设字符串长度为3,那么为0,1,2,其中2为最后一个字符的数组下标,即长度减一为最后一个字符的下标。
2024-11-24 10:57:21
615
原创 125. 验证回文串
使用operator[]进行访问string字符串中的字符,使用s.size()获取string字符串的长度,字符串长度减一是最后一个字符的下标。
2024-11-23 21:27:07
772
原创 HJ73 计算日期到天数转换
定义year,month,day用于接受数据由于牛客中由许多测试用例 这里需要采用while循环不断进行输入,如果没有按ctrl+c结束循环,那么系统进程就会一直等待进行输入。
2024-11-04 23:49:37
454
原创 JZ64 求1+2+3+...+n
使用+=运算符使n加在sum里,在进行++n这样每调用一次构造函数Sum,便将n的值加在sum里了class Sum{public:Sum()_sum+=_n;++_n;
2024-10-31 00:48:59
676
1
原创 如何《简便的》在Visual Studio 2022中调试LeetCode链表题目
如何《简便的》在Visual Studio 2022中调试LeetCode链表题目成功
2024-04-21 13:39:14
479
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人