随笔分类 - C++
摘要:红黑树满足一下规则 1. 每个节点不是红色就是黑色 2.根节点为黑色 3.如果节点为红,其子节点必须为黑 4.任一节点至nil的任何路径,所包含的黑节点数必须相同。 5.叶子节点nil为黑色 当破坏了平衡时,在调整的时候需要用到左旋和右旋 左旋: 右旋: 代码实现: 1 void rb_tree::
阅读全文
摘要:当两个指针指向通过一个地址时,如果其中一个指针对其进行了内存释放,另外一个指针是不知道的,这时候对另一个指针进行操作就会操作段错误等问题。这就是一个空悬指针的案例。例如下面的代码就会使得b指针变成空悬指针 输出结果为: 一开始是指向同一个地址,但当a指针进行了内存释放并指向NULL时,b指针还是指向
阅读全文
摘要:拷贝构造函数默认的是浅拷贝。当不涉及到堆内存时用浅拷贝完全可以,否则就需要深拷贝了。 浅拷贝相当于一个箱子有多个钥匙,但其中一个人打开箱子取走箱子里的东西时,其他人是不知道的。 深拷贝是有多个箱子每个箱子对应一个钥匙,但一个人取走他的钥匙对应的箱子里的东西时,不会对其他人产生影响。 运行结果如下:
阅读全文