- 博客(5)
- 收藏
- 关注
转载 为什么析构函数可以能声明为虚函数,构造函数不可以
转自:http://blog.csdn.NET/chen825919148/article/details/8020550构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的
2017-04-24 00:21:38 780
原创 平衡二叉查找树插入节点操作( AVLTree ):旋转、调整平衡
AVL树的插入在向一棵本来高度平衡的AVL树中插入一个新节点时,如果树中某个结点的平衡因子的绝对值 > 1,则出现了不平衡。设新插入结点为P,从结点P到根节点的路径上,每个结点为根的子树的高度都可能增加1,因此在每执行一次二叉搜索树的插入运算后,都需从新插入的结点P开始,沿该结点插入的路径向根节点方向回溯,修改各结点的平衡因子,调整整棵树的高度,恢复被破坏的平衡性质。 AVL树插入算法
2017-04-21 22:32:16 836
原创 死锁产生的原因及条件、如何避免死锁
一、死锁的定义是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造、成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 二、死锁产生的原因(1)因为系统资源不足。(2)进程运行推进的顺序不合适。(3)资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出
2017-04-15 21:37:41 1085
原创 malloc/free 和 new/delete的联系和区别
一、malloc/free 1、 函数原型:void* malloc(longNumBytes) 该函数分配了NumBytes个字节,并返回了只想这块空间的的指针。如果分配失败则返回空。函数原型:Void free(void *firstBytes)该函数是将之前用malloc分配的内存空间释放,还给操作系统。参数为只想那块空间的首地址。2、 内存操作:Mal
2017-04-06 21:20:50 826
原创 条件变量
1、条件变量:条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起。2、⼀一个线程可以调⽤用pthread_cond_wait在⼀一个Condition Variable上阻塞
2017-04-05 23:01:22 532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人