- 博客(90)
- 收藏
- 关注
原创 【Test 17 】 高阶数据结构 ~ 红黑树详解!!!
🍎①问题一:😳大家知道为什么新插入的节点默认为红色吗?原因如下:因为如果我们新插入一个节点将其颜色定义成为黑色的话,那这条路径上面就多了一个 黑色节点,为了要满足二叉树的条件每条路径上的黑色节点要相等,所以此时其他路径都要增加一个黑色节点,这样操作起来就会非常麻烦,所以新插入一个将其颜色定为 📍红色。// 枚举其节点的颜色RED,BLACK, _kv(kv), _col(RED) // 节点的颜色:默认红色{}
2024-05-25 10:07:28 171
原创 【Test 16 】Qt信号与槽机制
🐧参数 1发出信号的对象;🐧参数 2sender 对象的信号;🐧参数 3信号接收者;🐧参数 4receiver 对象的槽函数,当检测到 sender 信号,receiver对象调用 method 方法。
2024-05-24 20:22:32 206
原创 【Test 15 】QMap 类和 QHash 类以及 QVector 类
🐧①提供一个从类型为Key的键到类型为T的值的映射。通常,QMap存储的数据形式是一个键对应一个值,并且按照键Key的次序存储数据。🐧② 为了能够支持一键多值的情况,QMap提供和函数。QMultiMap 类来实例化一个QMap对象。
2024-05-24 16:50:06 168
原创 【Test 14】二叉搜索树(AVL)你了解多少呢?
/ AVL树要定义节点的父亲,因为更新需要更新祖先的平衡因子int _bf;// 该节点的平衡因子//构造函数,以便初始化, _kv(kv), _bf(0);{}
2024-05-24 09:08:19 259
原创 【Test 13】红黑树的细则你了解多少呢?
🍎①问题一:😳大家知道为什么新插入的节点默认为红色吗?原因如下:因为如果我们新插入一个节点将其颜色定义成为黑色的话,那这条路径上面就多了一个 黑色节点,为了要满足二叉树的条件每条路径上的黑色节点要相等,所以此时其他路径都要增加一个黑色节点,这样操作起来就会非常麻烦,所以新插入一个将其颜色定为 📍红色。// 枚举其节点的颜色RED,BLACK, _kv(kv), _col(RED) // 节点的颜色:默认红色{}
2024-05-23 21:53:52 833
原创 【Test 12】 C++ 11的新特性这些你清楚吗?
右值是不能取地址的,但是给右值取别名后,会导致右值被存储到特定位置,这个了解一下实际中右值引用的使用场景并不在于此,这个特性也不重要。且可取到该位置的地址,也就是说例如:不能取字面量10的地址,但是。但是右值引用可以move以后的左值。,是不是感觉很神奇,
2024-05-23 20:58:44 207
原创 【C++ 11 新特性】右值引用
右值是不能取地址的,但是给右值取别名后,会导致右值被存储到特定位置,这个了解一下实际中右值引用的使用场景并不在于此,这个特性也不重要。且可取到该位置的地址,也就是说例如:不能取字面量10的地址,但是。但是右值引用可以move以后的左值。,是不是感觉很神奇,
2024-05-22 20:55:06 363
原创 [Test 11] C语言通讯录的实现
/ 放到 contact.h 的文件中//类型的声明int age;}PeoInfo;// 把结构体数组再次用结构体封装,比起直接在main()函数中创建结构体数组,增加代码的可读性//存放数据int sz;//记录的时当前通讯录中存放的人的信息个数}Contact;
2024-05-22 10:35:57 402
原创 [Test 10] this 指针的详解!
解决该问题,即:C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问。编译器是否解引用,要观察解引用以后有没有意义,需不需要拿到这个对象,需不需要到这个对象的空间上面去找东西;指针是一个空指针,访问this指针_a的位置,就要对空指针进行解引用,此时就会崩溃。写出来,因为他是隐含的,我们不能抢了编译器的活。只不过所有的操作对用户是透明的,即用户不需要来传递,的地址是在编译的时候确定的;
2024-05-22 10:31:25 307
原创 [Test 09] 力扣 Leetcode 3120 统计特殊字母的数量、使矩阵满足条件的最少操作次数
大写字母和对应的小写字母低5位都是相等的;🐧③位运算小技巧:🐥。要保证相邻列数字不同。
2024-05-22 09:16:02 345
原创 【Test 08】优先队列、滑动窗口、DFS
①没有用 flag 来记录的话,所有在 DFS 暴搜的时候需要对返回的结果进行及时的判断。用一个 pos 记录要匹配单词 word 的位置,每次与 pos 进行匹配判断。① ✌ 滑动窗口要想清楚四个问题: 什么时候进窗口。,将偶数存入优先队列里面,每次取最大的元素减半。插入一个元素的时间复杂度是。DFS (深度优先遍历),
2024-05-20 16:38:02 1400 1
原创 [Test 06] 函数栈帧的创建和销毁
push 指令:压栈,从栈顶增加一个元素,它首先减少的值,再将源操作数复制到栈地址,在32位平台上,每次减少4字节;pop 指令:它首先把指向的栈元素内容复制到一个操作数中,再增加的值。在32位平台上,每次增加4字节;mov指令:用于将一个数据从源地址传送到目标地址,源操作地址的内容不变;sub 指令:减操作指令,从寄存器减去数值,然后将结果保存到寄存器中;lea 指令:是“load effective address”的缩写,简单的说,lea指令可以用来将一个内存地址直接赋给目的操作数; rep 指令:
2024-05-19 18:27:32 443 1
原创 [Test 05] 哈希表更详细的知识点!
所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。同理,std::map 和std::multimap 的key也是有序的。,std::set 和std::multiset 的底层实现是。,std::map 和std::multimap 的底层实现是。因为它的查询和增删效率是最优的,如果需要集合是有序的,那么就用。① std::unordered_map 底层实现为。没有限制的,因为key的存储方式使用红黑树实现的。的数据结构,map中,对key是有限制,对。
2024-05-19 16:56:24 138
原创 [Test 04] Linux 中,inode、文件系统的理解!
记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。① 超级块(Super Block)可以比喻为一个地图,它记录了整个文件系统的布局和重要的属性。:Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用;们在旅行时需要地图来了解道路和地点一样,文件系统也需要超级块来了解存储数据的结构和属性。
2024-05-18 22:21:34 324
原创 [Test03] 虚函数的重写!
①🍎重写只需要重写派生类的实现方式就好了(意思就是子类的函数名、函数参数、返回值类型用的是父类的),只重写函数体内部的实现!①🍎注意:如果派生类 new 出来了一个对象,申请了一段内存,必须重写子类的析构函数,并将基类的析构函数定义成为虚函数,不然子类申请的空间无法释放掉(内存泄露)。③🍎 虚函数重写,重写的是函数体的实现,函数体的结构部分(如函数名,函数参数,函数返回值)用的是父类的。即基类虚函数返回基类对象的指针或者引用,派生类虚函数返回派生类对象的指针或者引用时,称为协变。派生类重写基类虚函数时,
2024-05-18 18:28:04 309
原创 【Test02】QMap、QHash、QVector 的知识你了解多少 ?
🐧①提供一个从类型为Key的键到类型为T的值的映射。通常,QMap存储的数据形式是一个键对应一个值,并且按照键Key的次序存储数据。🐧② 为了能够支持一键多值的情况,QMap提供和函数。QMultiMap 类来实例化一个QMap对象。
2024-05-18 17:58:03 882
原创 [Test 01] 浅拷贝和深拷贝你了解多少?
⽽不涉及对象内部动态分配的资源。在浅拷⻉中,新对象和原对象共享相同的资源,⽽不是复制⼀份新的资源。是对对象的完全独⽴复制,包括对象内部动态分配的资源。在深拷⻉中,不仅复制对象的值,还会。🐧②对象内部动态分配的资源不会被复制,新对象和原对象共享同⼀份资源。🐧②动态分配的资源也会被复制,新对象拥有⾃⼰的⼀份资源副本。🐧① 复制对象及其所有成员变量的值。🐧① 复制对象及其所有成员变量的值。
2024-05-17 14:05:59 297
原创 【Test】Linux 中进程间的通信详解
②只能由血缘关系的两个进程进行通信(父和子进行通信,或者爷孙之间进行通信);:进程的并发控制肯定是需要多个进程之间通信来完成的;,所以我们也要把管道按文件来理解,管道实际上是。:某个进程可能需要控制另外一个进程一起运行;②没有亲缘关系的两个进程也可以进行通信;:有的时候两个进程需要访问同一块资源;两个进程访问内核中的同一块缓冲区。用于进程间的数据传输。①缓冲区没有标识符;
2024-05-17 13:37:24 156
原创 【Test】Qt 信号与槽机制
🐧参数 1发出信号的对象;🐧参数 2sender 对象的信号;🐧参数 3信号接收者;🐧参数 4receiver 对象的槽函数,当检测到 sender 信号,receiver对象调用 method 方法。
2024-05-17 10:12:48 347
原创 【Test】平衡二叉搜索树
/ AVL树要定义节点的父亲,因为更新需要更新祖先的平衡因子int _bf;// 该节点的平衡因子//构造函数,以便初始化, _kv(kv), _bf(0);{}
2024-05-16 19:44:13 475
原创 【Test】QMap、QHash、QVector你了解多少?
🐧①提供一个从类型为Key的键到类型为T的值的映射。通常,QMap存储的数据形式是一个键对应一个值,并且按照键Key的次序存储数据。🐧② 为了能够支持一键多值的情况,QMap提供和函数。QMultiMap 类来实例化一个QMap对象。
2024-05-16 19:37:20 445
原创 【Test】AVL ~ 二叉搜索树
/ AVL树要定义节点的父亲,因为更新需要更新祖先的平衡因子int _bf;// 该节点的平衡因子//构造函数,以便初始化, _kv(kv), _bf(0);{}
2024-05-15 19:46:58 239
原创 【Test】红黑树你了解吗?
与根节点进行区分,将头结点给成黑色,并且让头结点的 pParent 域指向红黑树的根节点,pLeft。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路。红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或。为了后续实现关联式容器简单,红黑树的实现中增加一个头结点,因为跟节点必须为黑.
2024-05-13 21:01:21 248
原创 【TEST】
前面对map/multimap/set/multiset进行了简单的介绍,在其文档介绍中发现,这几个容器有个共同点是:其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。{}// 该节点的左孩子// 该节点的右孩子// 该节点的双亲T _data;int _bf;// 该节点的平衡因子。
2024-05-12 21:21:55 283
原创 【面试题突击 C++】map 和 unordered_map 、set 有什么区别呢?
🐧① map 和 unordered_map 的区别你了解多少呢?🐧② map 和 set 的区别;
2024-05-11 23:00:16 298
原创 【Qt 开发基础体系】QMap 类和 QHash 类以及 QVector 类
①🍎QMap 类; ②🍎QHash 类; ③🍎 QVector 类;
2024-05-10 20:30:22 825
原创 【Linux BUG合集】Linux 中解决用 vim 打开文件的时候报 E325: ATTENTION 错误❗
🐧① 解决Linux 下,E325: ATTENTION 报错的问题;
2024-05-08 09:45:04 452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人