![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 95
被泡洗的浓盐酸
这个作者很懒,什么都没留下…
展开
-
C++高阶--并查集
并查集的原理【question1】并查集的实现并查集的基本结构代码实现合并两个数的集合两个数是否在一个集合集合的数量并查集的应用省份数量 等式方程的可满足性扩展:原创 2022-07-13 09:46:02 · 317 阅读 · 0 评论 -
哈希切割+布隆过滤器
目录布隆过滤器布隆过滤器的提出布隆过滤器的概念布隆过滤器的实现插入set函数布隆过滤器长度的设置测试布隆误判率布隆过滤器删除布隆过滤器的实现场景布隆过滤器的扩展以及哈希切分...原创 2022-06-30 16:17:52 · 439 阅读 · 0 评论 -
C++哈希的应用--位图+哈希的一些补充
位图位图的实现将x对应比特位0置1将x对应比特位1置0查看x位置是0还是1位图的应用哈希的补充原创 2022-06-20 20:46:38 · 554 阅读 · 0 评论 -
C++哈希
unordered系列关联式容器unordered_mapunordered_map的文档介绍unordered_set底层结构哈希概念哈希冲突的解决闭散列:代码实现哈希基本结构插入查找find删除仿函数的应用开散列基本结构插入的实现查找删除Unordered_set/Unordered_set对哈希的封装封装代码框架:哈希表的迭代器【operator*和operator->】operator++前置++ 迭代器原创 2022-06-09 20:01:51 · 3575 阅读 · 0 评论 -
C++红黑树的插入实现+红黑树迭代器实现+map/set封装红黑树
红黑树的基本编写红黑树的概念红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的红黑树的性质每个节点不是红色就是黑色 根节点是黑色的 没有连续的红色节点,但是可以有连续的黑色节点 每条路径黑色节点数量相等 每个叶子节点都是黑色的(此处的叶子节点值得是空节点--NIL节点,不是以前真正意义上理解的叶子节点)。假设每条路径原创 2022-06-01 18:27:02 · 544 阅读 · 0 评论 -
C++中AVL树的插入实现
AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单 支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树 中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:它的左右子树都是AVL原创 2022-05-23 18:35:23 · 345 阅读 · 0 评论 -
C++ -- map和set的需要注意的地方的使用讲解
目录关联式容器树形结构的关联式容器setset的删除erasemultisetmultiset的删除:erasemap【pair键值对】【map的插入insert】【遍历map】map的operator[] && 统计次数multimap关于map的一个练习小程序关联式容器在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、dequeforward_list(C++11)等,这些容器统称为序列式...原创 2022-05-10 16:46:32 · 658 阅读 · 0 评论 -
C++二叉搜索树的递归和非递归实现
二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树二叉搜索树的应用1. K模型:K模型即只有key作为关键码,结构中只需要存储Key即可,关键码即为需要搜索到的值。比如:给一个单词word,判断该单词是否拼写正确,具体方式如下:以单词集合中的每个单词作为key,构建一棵二叉搜索树 在二叉搜索树中原创 2022-05-09 11:40:33 · 663 阅读 · 0 评论 -
C++多态的一些问题
1. 什么是多态?2. 什么是重载、重写(覆盖)、重定义(隐藏)?3. 多态的实现原理?原创 2022-04-25 21:02:26 · 1034 阅读 · 0 评论 -
【C++】-- 多态
总结一下派生类的虚表生成: a.先将基类中的虚表内容拷贝一份到派生类虚表中 b.如果派生类重写了基类中某个虚函数,用派生类自己的虚函数覆盖虚表中基类的虚函数 c.派生类自己新增加的虚函数按其在派生类中的声明次序增加到派生类虚表的最后。但是不会在调试窗口显示出来,这也算编译器给优化的一部分。可以通过内存窗口查看。6. 这里还有一个童鞋们很容易混淆的问题:虚函数存在哪的?虚表存在哪的? 答:虚函数存在虚表,虚表存在对象中。注意上原创 2022-04-25 10:15:54 · 582 阅读 · 0 评论 -
C++基础--继承
有的人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java继承和组合 public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。 组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象。 优先使用对象组合,而不是类继承 。完原创 2022-04-14 20:49:14 · 1269 阅读 · 0 评论