C/C++
文章平均质量分 78
孤灯提单刀
飞吧!羽翼见风就长~
展开
-
字符串匹配算法之KMP
KMP 算法说起字符串查找,大家肯定能理解朴素的查法,就是以 S 每个字符为开头与 W 比较。O(m*n)这种方法是基于回溯,但是这种回溯每次出现不匹配就要重头比较,没能很好的利用不匹配点之前已经进行的匹配比较,有很多回溯点可以直接判断是不可能匹配成功的,因此KMP变基于对子串的提前分析,在子串的位置j出现不匹配时,直接获得子串后移长度,减少了不必要的回溯,其效率可达到性O(m+n原创 2016-07-15 21:26:59 · 322 阅读 · 0 评论 -
模板类的使用注意事项
组织模板代码有三种方式1.包含模型(常规写法 将实现写在头文件中)2.显式实例化(实现写在cpp文件中,使用template class语法进行显式实例化)3.分离模型(使用C++ export关键字声明导出)第三种方式理论最优,但是实际从C++标准提出之后主流编译器没有支持过,并且在最新的C++11标准中已经废除此特性,export关键字保留待用。头文件定义:原创 2016-07-06 20:45:37 · 2487 阅读 · 0 评论 -
模板类中的友元函数使用注意
#include "templateTest.h"template void Point::setX(T a){this->x=a;}template void Point::setY(T a) {this->y=a;}template T Point::getX(){return this->x;}template T Point::getY(){return this->y;}te原创 2016-06-22 22:49:18 · 622 阅读 · 0 评论 -
面试记录
【1】不用乘法和除法操作符(*、/),实现两个整数的相除思路:转换为减法操作,简单举例5/2,找到2的小于5的最大倍数4=2*2,5-4=1;1int myDiv_2(unsigned int a,unsigned int b){ unsigned int x,y; int ans=0; while(a=b){ x=b; y=1;原创 2016-07-29 15:53:27 · 341 阅读 · 0 评论