![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端学习记录
文章平均质量分 66
小小哇牛
jiayou
展开
-
右值引用-移动构造详解
先理解右值引用,要理解右值引用先要回顾左值引用,要理解左值引用先回顾下右值和左值 定义:左值与右值的定义在于一个赋值等号,赋值等号左边成为左值,等号右边成为右值 左值(L-value):表示存储在计算机内存的对象,可寻址,相当于地址值 右值(R-value):代表的为真实值,可读,即数据值 左值引用,是一种数据类型,他是对一个左值的引用,同理右值引用,也是一种数据类型,他是对优质的引用 左值引用常用的场景是函数参数的传递,相当于扩展了左值的作用域到函数中 那么在来说说右值引用,普通的右值引用好理原创 2022-04-17 10:19:29 · 896 阅读 · 0 评论 -
详解单例模式
定义 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 ——《设计模式》GoF 版本一 class Singleton { public: static Singleton * GetInstance() { if (_instance == nullptr) { _instance = new Singleton(); } return _instance; } private原创 2022-04-12 22:59:14 · 358 阅读 · 0 评论 -
布隆过滤器学习梳理
感觉要理解布隆过滤器,需要从二叉树说起 平衡二叉树的性质:可以已logn的速度进行搜索,但由于二叉树是要保存key和value,及时使用set,也是需要保存key的,那么如果数据量巨大的时候,比如上亿的数据量,这时候如果在查询的时候,用二叉搜索树,就需要将其都加载到内存中,内存就会爆掉 布隆过滤器就解决了上述问题,可以不用那么多的内存空间,实现数据的查询,但他的查询是有一定局限性的,只能在指定的场景下使用:如果要经常判断 1 个元素是否存在 它是一个空间效率高的概率型数据结构,可以用来告诉你:一个元素原创 2022-04-08 18:30:55 · 1018 阅读 · 0 评论 -
B树学习梳理
一颗M阶B树T,满足以下条件 1. 每个结点至多拥有M课子树 2. 根结点至少拥有两颗子树 3. 除了根结点以外,其余每个分支结点至少拥有M/2课子树 4. 所有的叶结点都在同一层上 5. 有k课子树的分支结点则存在k-1个关键字,关键字按照递增顺序进行排序 6. 关键字数量满足ceil(M/2)-1 <= n <= M-1 B树和二叉树一样,也属于搜索树,是多叉搜索树,M阶的意思是只每个节点做多可以有M个子树 B树的搜索: 1.先在节点内部从小到大开始搜.原创 2022-04-06 15:23:05 · 1657 阅读 · 0 评论 -
红黑树学习整理
定义: 1.每个节点不是红色就是黑色; 2.根节点是黑色 3.如果一个节点是红色,则他的两个孩子节点是黑色(从每个叶子到跟的所有路径不能有两个连续的红色节点) 4.对于每个节点,从该节点到其所有后代节点的简单路径上,均包含相同数目的黑色节点 5.每个叶子节点都是黑色的(此处的叶子节点是值空节点如下图解释,看似24是叶子节点,但对于红黑树来说,最后的两个空子节点才是叶子节点) 二叉树节点和二叉树的代码定义 typedef struct _rbtree_node { unsigned原创 2022-04-02 19:18:38 · 612 阅读 · 0 评论