![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++进阶
文章平均质量分 96
C++进阶相关内容
有趣的中国人
2024加油
展开
-
【C++11】详谈隐式类型转换
`initializer_list` 是 `C++11` 引入的一种标准库类型,用于方便地初始化同一种类型的元素列表。`initializer_list` 允许通过大括号 `{ }` 语法进行初始化,例如: std::initializer_list my_list = {1, 2, 3, 4, 5};这里 `my_list` 是一个包含了整数元素 `{1, 2, 3, 4, 5}` 的 `initializer_list` 对象。==原创 2024-06-19 22:47:13 · 769 阅读 · 44 评论 -
【哈希】用哈希桶封装unordered_map & unordered_set
由于`unordered_map`和`unordered_set`的分别是 `KV` 类型和 `K` 类型,存储的数据类型是不相同的, 但是底层的哈希桶只有一份,这个时候我们得想到用模板的方法来解决此问题。(这块类似于红黑树那的封装)1. 我们用哈希表来实现`unordered_map`和`unordered_set`,因此他们两个的成员变量就是用哈希桶实现出的哈希表的对象;2. 哈希表的前两个模板参数是 `K` 和 `V`(`Key: 关键字` 和原创 2024-05-31 00:14:13 · 812 阅读 · 34 评论 -
【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(2)
**开散列法又叫链地址法(开链法)**,**首先对关键码集合用** **散列函数计算散列地址**,**具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来**,**各链表的头结点存储在哈希表中。**很明显,**这个哈希表中存储了一个指针数组**,我们可以用`vector`来实现,数组中的**每个位置存储了一个节点类型的指针**,**每个节点相当于是链原创 2024-05-29 00:34:33 · 1250 阅读 · 23 评论 -
【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(1)
哈希函数是一种将输入数据(例如字符串、数字等)转换为固定长度的输出数据的函数。这个输出通常称为哈希值或哈希码。哈希函数的特点是,对于相同的输入,它总是生成相同的输出,而且通常无法根据输出反推出输入。这种特性使得哈希函数在==密码学、数据验证和数据检索==等领域中非常有用。哈希表是一种数据结构,它利用哈希函数来快速定位存储和检索数据。哈希表由一个数组组成,每个数组元素称为桶($bucket$)或槽($slot原创 2024-05-28 18:13:00 · 1299 阅读 · 32 评论 -
【map、set】C++用红黑树来封装map、set容器
我们在模拟红黑树的时候一律用了`pair`的`KV`模型来进行实现。但是由于`map`是`KV`模型的而`set`是`K`型的,但是底层都是用的红黑树,那么应该如何进行调整呢?原创 2024-05-23 20:24:02 · 849 阅读 · 43 评论 -
【平衡二叉搜索树】红黑树
红黑树,是一种二叉搜索树,==它在每个结点上增加一个存储位表示结点的颜色,可以是 Red 或 Black。== 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,==红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。==>>> 它在插入和删除节!原创 2024-05-17 18:44:56 · 796 阅读 · 38 评论 -
【平衡二叉树】AVL树(双旋)
左右双旋后,实际上就是让`subLR`的左子树和右子树,分别作为`subL`和`parent`的右子树和左子树,再让`subL`和`parent`分别作为`subLR`的左右子树,最后让`subLR`作为整个子树的根。> 1. `subLR`的左子树当中的结点本身就比`subL`的值大,因此可以作为`subL`的右子树。> 2. `subLR`的右子树当中的结点本身就比`parent`的值小,因此可以原创 2024-05-14 22:21:04 · 1301 阅读 · 26 评论 -
【平衡二叉树】AVL树(右单旋和左单旋的情况)
1. AVL树的定义🎉博主首页:有趣的中国人🎉专栏首页:C++进阶🎉其它专栏:C++初阶 |初阶数据结构 |Linux。原创 2024-05-04 23:49:21 · 988 阅读 · 32 评论 -
【C++容器map】map的相关用法
1. map的介绍🎉博主首页:有趣的中国人🎉专栏首页:C++进阶🎉其它专栏:C++初阶 |初阶数据结构 |Linux本篇文章主要讲解C++容器之map相关用法的相关内容。原创 2024-05-01 23:10:44 · 1053 阅读 · 26 评论 -
【二叉搜索树】二叉搜索树的用法以及实现
二叉搜索树的用法以及实现原创 2024-04-28 15:50:37 · 1116 阅读 · 17 评论 -
【多态】有关多继承和菱形继承的多态
博主会持续更新本篇文章主要讲解多继承和菱形继承的多态的相关内容。原创 2024-04-26 19:01:35 · 1292 阅读 · 24 评论 -
【多态】底层原理
本篇文章主要讲解多态底层原理的相关内容。原创 2024-04-23 01:37:58 · 760 阅读 · 4 评论 -
【多态】初识多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。多态构成需要有两个条件:1. 虚函数构成重写;2. 父类的指针或者引用来调用虚函数。原创 2024-04-22 23:58:28 · 460 阅读 · 6 评论 -
【继承】复杂的菱形继承
本篇文章主要讲解菱形继承的相关内容。原创 2024-04-22 15:22:46 · 1037 阅读 · 4 评论 -
【C++初识继承】
继承 总的来说:1. 基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。原创 2024-04-20 23:18:04 · 1174 阅读 · 6 评论