- 博客(13)
- 收藏
- 关注
原创 析构函数可以是虚函数吗?
在多态的时候,比如基类的指针指向派生类的对象,如果删除该指针delete []p,就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数,这样整个派生类的对象完全被释放。 如果析构函数不被声明成虚函数,会造成派生类对象析构不完全。 所以析构函数声明为虚函数的十分必要的。 ...
2019-03-13 16:36:02 5575
转载 哈希表HashTable个人理解
键值对 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。 哈希表是一种通过哈希函数将特定结构,他维护键和值之间一一对应关系。 键(key):关键字。唯...
2019-03-09 14:49:15 246
原创 链表基础知识
链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。 链表都有一个头指针,一般以head来表示,存放的是一个地址。 链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。 链表中每个节点都分为两部分,一个数据域,一个是指针域。 链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个...
2019-03-09 14:11:28 386
原创 红黑树与AVL树的区别
红黑树与AVL树都是平衡树,但是AVL是完全平衡的(平衡就是值树中任意节点的左子树和右子树高度差不超过1); 红黑树效率更高,因为AVL为了保证其完全平衡,插入和删除的时候在最坏的情况下要旋转logN次,而红黑树插入和删除的旋转次数要比AVL少。 AVL树[1],它或者是一颗空二叉树,或者是具有下列性质的二叉树: (1) 其根的左右子树高度之差的绝对值不能超过1; (2) 其根的左右子...
2019-03-09 11:25:04 1306
原创 树的基本术语——数据结构
若一个结点有子树,那么该结点称为子树根的"双亲",子树的根是该结点的"孩子"。有相同双亲的结点互为"兄弟"。一个结点的所有子树上的任何结点都是该结点的后裔。从根结点到某个结点的路径上的所有结点都是该结点的祖先。 结点的度:结点拥有的子树的数目。 叶子:度为零的结点。 分支结点:度不为零的结点。 树的度:树中结点的最大的度。 层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1。 树...
2019-03-09 11:10:45 245
原创 红黑树介绍
红黑树是一种二叉搜索树,树的每个节点是黑色或者红色。符合以下特征: 1、根节点和所有外部节点都是黑色(在一棵规则二叉树中,每一个空指针用一个外部节点代替,由此得到一个扩展二叉树) 2、在根至外部节点的路径上,没有连续两个节点是红色 3、在所有根至外部节点的路径上,黑色节点的数目相同 ...
2019-03-09 11:10:03 231 1
原创 linux中在vscode下调试C++代码
1. 安装编译器 vscode是一个轻量的代码编辑器,并不具备代码编译功能,代码编译需要交给编译器完成。linux下最常用的编译器是gcc,通过如下命令安装: sudo apt-get install build-essential 安装成功之后,在终端中执行gcc --version或者g++ --version,可以看到编译器的版本信息,说明安装成功。 没有安装clang的请安装一下...
2019-02-25 09:58:36 154
转载 Linux多线程编程快速入门
Linux多线程编程快速入门 本文主要对Linux下的多线程进行一个入门的介绍,虽然是入门,但是十分详细,希望大家通过本文所述,对Linux多线程编程的概念有一定的了解。具体如下。 1 线程基本知识 进程是资源管理的基本单元,而线程是系统调度的基本单元,线程是操作系统能够进行调度运算的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进...
2019-02-24 22:28:50 109
转载 Webbench用法详解
PS:在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维...
2019-01-11 10:57:28 1289
转载 C中的volatile用法
.volatile的本质: 1> 编译器的优化 在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。 当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致。 当该寄存器在因别的线...
2019-01-10 15:34:25 97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人