摘要: 一. 规则 1. 根节点必须是黑色; 2. 节点要么是黑色要么是红色; 3. 叶子节点都为黑色; 4. 从任意节点出发到根节点,所经历的黑色节点的数目相同 5. 如果节点为红,其子节点必须为黑 二.插入 1.当前节点是根节点:把根节点改为黑色 2.当前节点的父节点是黑节点,保持不变 3.当前节点的父 阅读全文
posted @ 2021-05-30 23:53 Baymax_HH 阅读(58) 评论(0) 推荐(0)
摘要: new能够将内存分配和对象构造 结合一起,delete将对象析构和内存释放结合在一起。但是当希望将内存分配和对象构造分离时,即分配大内存,当真正需要时才进行对象的构造,我们可以使用allocator。 对象和构造组合在一起可能会导致不必要的浪费 标准库中allocator在memory头文件中,他帮 阅读全文
posted @ 2021-05-08 10:42 Baymax_HH 阅读(58) 评论(0) 推荐(0)
摘要: 利用一个对象指针实现通过拷贝构造函数和赋值运算符实现计数引用 注意:析构是要判断当前的值是否为1,如果为1则删除,否则减一 class HasPtr { public: HasPtr(const string& s = string()) : ps(new string(s)), i(0), use 阅读全文
posted @ 2021-05-07 19:34 Baymax_HH 阅读(73) 评论(0) 推荐(0)