![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 52
迷亭1213
帅帅帅
展开
-
C++构造函数简单用法
1.构造函数1.1 基本概念:每个类都有构造函数,如果自己不写,编译器会生成一个默认的无参数构造函数。构造函数名字与类名相同,可以有参数,不可以有返回值(void也不可以)。构造函数的作用是对对象进行初始化,如给变量赋初值。1.2 注意:如果定义了构造函数,则编译器不生成默认的无参数构造函数。对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数。一个类可以有多个构造函数(函数重...原创 2018-05-09 17:50:58 · 13813 阅读 · 6 评论 -
C++内联函数、函数重载与函数缺省参数
一、内联函数背景:函数调用是有时间开销的。如果函数本身只有几条语句,执行非常快,而且函数被反复执行很多次,相比之下调用函数所产生的这个开销就会显得比较大。目的:为了减少函数调用的开销,引入了内联函数机制。编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句处,而不会产生调用函数的语句。 代码实例:(inline代表内联函数)inline int Max(int a,int b) {...原创 2018-04-20 23:39:57 · 9141 阅读 · 0 评论 -
如何从C快速过渡到C++
1.C和C++的区别:C语言可以在C++编译器上完美运行,即C属于C++C++比C多出来一些函数库C++是面向对象编程(即有class以及相关工具)2.如何从C过渡到C++2.1 代码实例:(C语言版)uva11000.#include<stdio.h>int main(){ long long m = 0, fm = 1, sum = 1; int n,i; while(s...原创 2018-07-03 17:35:31 · 22266 阅读 · 7 评论 -
C/C++ 子集生成算法整理
个人笔记,仅供复习1.概念:给定一个集合,枚举所有可能的子集。2.常用算法增量构造法位向量法二进制法3.增量构造法3.1 思路:一次选出一个元素放到集合中。3.2 代码实例:void print_subset(int n,int *A,int cur){ for(int i = 0;i < cur;i++) cout << A[i] << " ";//打印当前子集 ...原创 2018-07-03 13:56:25 · 7925 阅读 · 0 评论 -
C/C++ 平衡二叉树笔记(AVL树)
个人笔记,仅供复习1.概念1.1 背景:搜索树结点的不同插入次序,将导致不同深度和平均查找长度ASL1.2 平衡因子(Balance Factor,简称BF):BF(T) = h(L) - h(R),其中h(L)和h(R)分别为左、右子树高度。1.3 平衡二叉树(Balance Binary Tree)(AVL树)定义:空树任一结点左右子树高度差的绝对值不超过1,即|BF(T)|<=11.4...原创 2018-07-08 09:48:56 · 2878 阅读 · 1 评论 -
优先队列 C++
1.头文件:include<queue>2.定义:优先队列和队列一样,只能从队尾插入元素,从队首删除元素。队列中最大的元素总是位于队首。可以通过重载<运算符来重新定义比较规则。3.优点:自动排序4.声明:priority_queue<数据类型> 队列名;5.常用的声明:5.1基本常量的优先队列:priority_queue<int> q1;priorit...原创 2018-06-13 20:26:56 · 4993 阅读 · 0 评论 -
C++ 快速幂运算
1.概念:快速幂运算也叫反复平方法。顾名思义,算法就蕴含在名字中。2.原理: 假设要求x^n,如果n = 2^k,那么原题可以很轻松的表示为:x^n = ((x^2)^2)^2…。这样只要做k次平方运算就能解决,时间复杂度就从O(n)下降到log(n)。 由上面的分析可知,只要幂运算的幂可以写成2^k的形式,就可以用上面的方法降低时间复杂度。所以我们可以将任意的实数n改写有限个2^k的...原创 2018-06-05 20:21:14 · 37501 阅读 · 4 评论 -
C++尺取法
1.概念:所谓尺取法,顾名思义,就是像一把尺子(固定某一条件),不断向右(左)移动,不断更新所求答案。一般用来求满足条件的最小区间。2.实现步骤:初始化左右端点不断扩大右端点,直至满足条件如果直至终点也无法满足条件,则终止,否则更新结果扩大左端点(右移1),跳回步骤23.伪代码:4.例题:给定一个整数S,求一个长度为n的序列(所有元素均为正整数)中总和不小于S的连续子序列的长度的最小值,如果不存在...原创 2018-05-15 20:21:21 · 6824 阅读 · 0 评论 -
C++ 运算符重载
1.运算符重载的基本概念1.1 背景:运算符只能用于基本数据类型进行运算,不能用于对象之间。为了满足对象之间可以通过运算符进行运算。1.2 概念:对已有的运算符(C++中预定义的运算符)赋予多重含义,使同一运算符作用于不同类型的数据时导致不同的行为。1.3 目的:扩展C++中提供的运算符的适用范围,使之能作用于对象。1.4 形式:运算符重载实质是函数重载。可以重载为普通函数,也可以重载为成员函数。...原创 2018-05-12 14:23:19 · 5574 阅读 · 0 评论 -
C++ 多态
1.虚函数1.1 定义:在类的定义中,前面有virtual关键字的成员函数就是虚函数。1.2 写法:virtual 关键字只用在类定义里的函数声明中, 写函数体时不用。1.3 代码实例:class A{ virtual void say();};void A::say(){ cout << "hello" << endl;}2.多态的表现形式:2.1多态的表现形式...原创 2018-05-18 16:12:25 · 7584 阅读 · 0 评论 -
C++ 类的继承和派生
个人笔记,仅供复习1.继承和派生的概念1.1 继承:在定义一个新类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,把B作为基类的一个派生类(子类)。1.2 派生:派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数。派生类一经定义后,可以独立使用,不依赖与基类。派生类拥有基类的全部成员变量和成员函数,不论是private还是...原创 2018-05-17 21:31:37 · 5357 阅读 · 1 评论 -
C++引用类型详解
一、引用的概念下面的写法定义了一个引用,并将其初始化为引用某个变量。 类型名 & 引用名 = 某变量名; int n = 4; int & r = n; // r引用了 n, r的类型是 int & 某个变量的引用,等价于这个变量,相当于该变量的一个别名。 定义引用时一定要将其初始化成引用某个变量。 初始化后,它就一直引用该变量,不会再引用别的变量了。 引用只能引用...原创 2018-04-20 23:15:47 · 13296 阅读 · 3 评论