logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】set和map的使用

T就是set底层关键字的类型set默认要求T支持小于比较,如果不支持或者想按自己的需求走可以自行实现仿函数传给第二个模版参数set底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给第三个参数set底层是用红黑树实现,增删查效率是O(logN) ,迭代器遍历是走的搜索树的中序,所以是有序的。Key就是map底层关键字的类型T是map底层value的类型set默认要求Key支持小

#c++
【C++】数据结构——AVL树实现

3.更新后parent的平衡因子等于2或-2,更新前更新中parent的平衡因子变化为1->2或者-1->-2,说明更新前parent子树一边高一边低,且新增的插入结点在高的那边,parent所在的子树高的那边更高了,破坏了平衡,parent所在的子树不符合平衡要求了,需要旋转处理,旋转的目标有两个:1、把parent子树旋转平衡;场景3:h==0时,a/b/c都是空树,b自己就是⼀个新增结点,不

#c++#开发语言#数据结构
【C++】数据结构——红黑树实现

用获取最长路径和最短路径,检查最长路径不超过最短路径的2倍的方法是不可行的,因为就算满足这个条件,红黑树也可能颜色不满足规则,只是当前暂时没出问题,后续继续插入还是会出问题的。u存在且为黑,则c⼀定不是新增,c之前一定是黑色的,是在c的子树中插入了新的节点,符合情况1,更新上来将c从黑色变成红色了。u存在且为黑,则c⼀定不是新增,c之前一定是黑色的,是在c的子树中插入了新的节点,符合情况1,更新上

#c++#开发语言#数据结构
【C++】封装红黑树实现mymap和myset

(2)如果当前结点是父亲的右,当前当前结点所在的子树访问完了,当前结点所在父亲的子树也访问完了,那么下⼀个访问的需要继续往根的祖先中去找,直到找到孩子是父亲左的那个父亲节点,就是中序要问题的下⼀个结点。2.迭代器++时,如果it指向的结点的右子树空,代表当前结点已经访问完了且当前结点所在的子树也访问完了,要访问的下⼀个结点在当前结点的祖先里面,所以要沿着当前结点到根的祖先路径向上找。end()如何

#c++
【C++】unordered_map和unordered_set的使用

Key就是unordered_set底层关键字的类型unordered_set默认要求Key支持转换为整形,如果不支持或者想按自己的需求走可以自行实现支持将Key转成整形的仿函数传给第二个模板参数unordered_set默认要求Key支持比较相等,如果不支持或者想按自己的需求走可以自行实现支持将Key比较相等的仿函数传给第三个模板参数unordered_set底层存储数据的内存是从空间配置器申请

#c++
【C++】内存管理

int _b;delete(p2);return 0;在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。class Apublic://无默认构造:_a(a),_b(b)~A()private:int _a;int _b;int main()

#c++#c语言
到底了