c++
文章平均质量分 67
AlinaYe
这个作者很懒,什么都没留下…
展开
-
KMP字符串匹配算法
KMP算法分两步: 1、求解模式串的next数组 2、当模式串中的字符和目标串中的字符失配时,利用模式串的next数组对模式串进行右移 因此要实现KMP算法,首先要求解next数组: next数组中保存的是当前字符之前的字符段里前缀和后缀相同的长度,例如 模式串为: ABCDABD next数组为:-1 0 0 0 0 1 2 求解的过程为: 1原创 2016-03-17 17:23:00 · 448 阅读 · 0 评论 -
c++程序设计笔记(9)
函数模板:泛型程序设计 算法实现时不指定具体要操作的数据的类型 泛型:算法实现一遍适用于多种数据结构 优势:减少重复代码的编写 函数模板的形式: template 返回值类型 模板名(形参表){ 函数体 } template class T原创 2016-03-08 16:13:23 · 372 阅读 · 0 评论 -
c++程序设计笔记(8)
虚函数和多态: 虚函数: 在类的定义中,前面有virtual关键字的成员函数 virtual关键字只用在类定义里的函数声明中,写函数体时不用。构造函数和静态成员函数不能是虚函数。 多态的表现形式: 1、派生类的指针可以赋给基类指针。通过基类指针调用基类和派生类中的同名虚函数,若指针指向一个基类的对象,调用的是原创 2016-03-08 16:12:06 · 567 阅读 · 0 评论 -
c++程序设计笔记(7)
继承和派生: 继承:B类拥有A的全部特点,A作为基类,B作为子类(派生类) 子类有基类的全部成员函数和成员变量,不论private、protected、public,但子类的成员函数中不能访问基类的private成员 子类对象的体积等于基类对象的体积加上子类对象自己的成员变量的体积。子类对象中包含着基类对象,而且基类对象的存储位置位于子类新增的成员变量之前。原创 2016-03-08 16:11:12 · 376 阅读 · 0 评论 -
c++运算符重载实例
运算符重载实例:vector的实现方式就是可变长数组,且提前申请一片较大的空间,每当添加元素到达size大小的时候再重新new一个是原有空间2倍的大小。 class CArray{ int * p; int size; int maxsize; public: CArray():p(new int[32]),size(0),maxsize(32){原创 2016-03-08 16:10:01 · 423 阅读 · 0 评论 -
c++程序设计笔记(6)
运算符重载: 实质是函数重载,形式返回值类型 operator运算符(形参表){} 程序编译时: 1、把含运算符的表达式转换为运算符函数的调用 2、运算符的操作数转换为运算符函数的参数 3、运算符被多次重载时,根据实参的类型决定调用运算符函数 4、运算符可以被重载为普通函数,也可以被重载原创 2016-03-08 16:08:17 · 435 阅读 · 0 评论 -
c++程序设计笔记(5)
常量对象: 定义该对象时在前面加const关键字,该对象的值不能被改变。常量对象不能调用非常量成员(静态成员除外) const A name; 常量成员函数: 类的成员函数说明后面加const关键字。常量成员函数执行期间不能修改其所作用的对象,即不能修改成员变量的值(静态成员变量除外,因为静态成员是被类所共有的),也不能调用同类的非常量成员函数(静态成员函原创 2016-03-08 16:07:05 · 326 阅读 · 0 评论 -
c++程序设计笔记(4)
友元(Friend): 友元函数和友元类 友元函数: 1、一个类的友元函数可以访问该类的私有成员 class A{ int a; public: A(int a1){ a = a1; } friend void func(A a); }; void func(A a){ couta.ae原创 2016-03-08 16:04:39 · 392 阅读 · 0 评论 -
c++程序设计笔记(3)
静态成员: 普通成员变量每个对象各自有一份,静态成员一共就一份,为所有对象所共享 sizeof(class)时不会把类中的静态成员变量大小算进来,因为其不是放在对象的内部了 静态成员不具体作用于某一个对象 静态成员的访问: 1、类名::成员名 2、对象名.成员名,形式如此,但并不作用于对象原创 2016-03-08 16:03:21 · 444 阅读 · 1 评论 -
c++程序设计笔记(2)
对象的内存空间: 对象的大小=所有成员变量的大小之和 例如,一个对象中有两个int类型的变量,那么该对象的大小sizeof(thisobject)=8两个int的大小(8字节) 访问类的成员变量和成员函数: 1、对象.成员变量/成员函数 2、指针->成员名 CRectangle r1,r2;原创 2016-03-08 16:01:05 · 355 阅读 · 0 评论 -
c++程序设计笔记(1)
补码: 原码按位取反再加1 符号位0代表正数,符号位1代表负数 正数的补码是本身,负数的补码是对应的正数连同符号位按位取反再加1 补码的补码为原码 位运算: 左移N位在低位补0,相当于乘以2的n次方,如果所做乘法和2有关,用位运算做 右移N位在高位补和符号位一致的数,相当于除以2的n次方,得数不为整数的向下原创 2016-03-08 15:57:00 · 430 阅读 · 0 评论 -
c++二叉树的建立、前序中序后序深搜、宽搜、宽搜带行号
c++中用模板类建立树的抽象结构要注意c++中的类模板不能实现分离编译,即定义在.h文件,实现在.cpp文件,因此要将定义和实现都写在.h文件中 原因见:http://blog.csdn.net/pongba/article/details/19130 输入的树形为: 输入文件内容为: A B D G # # H # # E # # C K # # F I # J原创 2016-03-16 10:25:11 · 493 阅读 · 0 评论