随笔分类 - C++
摘要:个人笔记,仅供复习1.概念1.1 背景:搜索树结点的不同插入次序,将导致不同深度和平均查找长度ASL1.2 平衡因子(Balance Factor,简称BF):BF(T) = h(L) - h(R),其中h(L)和h(R)分别为左、右子树高度。1.3 平衡二叉树(Ba...
阅读全文
摘要:1.C和C++的区别:C语言可以在C++编译器上完美运行,即C属于C++C++比C多出来一些函数库C++是面向对象编程(即有class以及相关工具)2.如何从C过渡到C++2.1 代码实例:(C语言版)uva11000.#includeint main(){ long...
阅读全文
摘要:个人笔记,仅供复习1.概念:给定一个集合,枚举所有可能的子集。2.常用算法增量构造法位向量法二进制法3.增量构造法3.1 思路:一次选出一个元素放到集合中。3.2 代码实例:void print_subset(int n,int *A,int cur){ for(in...
阅读全文
摘要:1.头文件:include2.定义:优先队列和队列一样,只能从队尾插入元素,从队首删除元素。队列中最大的元素总是位于队首。可以通过重载 队列名;5.常用的声明:5.1基本常量的优先队列:priority_queue q1;priority_queue q2;5.2常用...
阅读全文
摘要:1.概念:快速幂运算也叫反复平方法。顾名思义,算法就蕴含在名字中。2.原理: 假设要求x^n,如果n = 2^k,那么原题可以很轻松的表示为:x^n = ((x^2)^2)^2…。这样只要做k次平方运算就能解决,时间复杂度就从O(n)下降到log(n)。 ...
阅读全文
摘要:个人笔记,仅供复习1.虚函数1.1 定义:在类的定义中,前面有virtual关键字的成员函数就是虚函数。1.2 写法:virtual 关键字只用在类定义里的函数声明中, 写函数体时不用。1.3 代码实例:class A{ virtual void say();};vo...
阅读全文
摘要:个人笔记,仅供复习1.继承和派生的概念1.1 继承:在定义一个新类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,把B作为基类的一个派生类(子类)。1.2 派生:派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新...
阅读全文
摘要:个人笔记,仅供复习1.概念:返回推进区间的开头和结尾,求满足条件的最小区间的方法称为尺取法。所谓尺取法,顾名思义,就是像一把尺子(固定某一条件),不断向右(左)移动,不断更新所求答案。一般用来求满足条件的最小区间。2.实现步骤:初始化左右端点不断扩大右端点,直至满足条...
阅读全文
摘要:个人笔记,仅供复习1.运算符重载的基本概念1.1 背景:运算符只能用于基本数据类型进行运算,不能用于对象之间。为了满足对象之间可以通过运算符进行运算。1.2 概念:对已有的运算符(C++中预定义的运算符)赋予多重含义,使同一运算符作用于不同类型的数据时导致不同的行为。...
阅读全文
摘要:个人笔记,仅供复习1.构造函数1.1 基本概念:每个类都有构造函数,如果自己不写,编译器会生成一个默认的无参数构造函数。构造函数名字与类名相同,可以有参数,不可以有返回值(void也不可以)。构造函数的作用是对对象进行初始化,如给变量赋初值。1.2 注意:如果定义了构...
阅读全文
摘要:一、内联函数背景:函数调用是有时间开销的。如果函数本身只有几条语句,执行非常快,而且函数被反复执行很多次,相比之下调用函数所产生的这个开销就会显得比较大。目的:为了减少函数调用的开销,引入了内联函数机制。编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语...
阅读全文
摘要:一、引用的概念下面的写法定义了一个引用,并将其初始化为引用某个变量。 类型名 & 引用名 = 某变量名; int n = 4; int & r = n; // r引用了 n, r的类型是 int & 某个变量的引用,等价于这个变量,相当于该变量的一个别名。 定义...
阅读全文

浙公网安备 33010602011771号