- 博客(14)
- 收藏
- 关注
原创 shell命令重定向与管道
重定向 重定向标准输出:>file or 1>file重定向标准错误:2>file重定向标准输出和错误到同一文件:>file 2>&1重定向标准输入:< file管道: cmd1 | cmd2 把cmd1的输出重定向到cmd2的标准输入符号解释 > 输出,< 输入, 0 标准输入,1 标准输出,2 标准错误
2017-03-10 15:52:01 477
原创 字符串匹配Sunday算法C++实现
模式匹配算法都需要一个源串的滑动指针i和模式串的滑动指针j。普通的匹配算法在字符失配时需要同时回溯i和j,复杂度为o(m*n)。而改进的KMP匹配算法算法就是在失配时不回溯源串指针i,只回溯j到最长前缀处使得复杂度达到哦o(n)。而Sunday算法不仅不回溯i,而且可以使i跨越模式串前进,进一步降低复杂度,而且如果不谈Sunday算法的原理,单就算法本身和实现来讲要比KMP算法简单很多,更加容易理解
2016-03-04 12:04:21 3327
原创 KMP字符串匹配算法的分析实现
KMP算法中的next数组构造是一个关键问题,但是博主发现next数组的构造方法有很多,不同的算法实现中构造出的next数组也有所不同,有些方法实在是晦涩难懂。【经典算法】——KMP,深入讲解next数组的求解,这篇博客提供了一种比较简明的理解和构造next数组的方法。引入最长部分匹配长度的概念,实质上就是字符串的前缀(去掉首字符)和后缀(去掉尾字符)相同的最大长度:“A”的前缀和后缀都为空集,共
2016-02-14 13:40:29 570
原创 平衡二叉树(可重复key)插入删除(c/c++实现)
平衡二叉树插入,比较简单,主要工作在插入结点后的调平,通过递归调用InsertAVL,插入结点调整返回调整后的数高度是否变化,依次调整返回,平衡二叉树插入结点的调整有四种情况,实现主要是在R_Balance和L_Balance里。删除结点要复杂一点,递归查找删除结点,找到后判断:外界链表是否为空,如果不空取下一个,树不变否则:1)如果为叶子结点,直接删掉,调整返回2)如果只有一
2015-04-17 16:17:21 1111
原创 c++构造、析构顺序
在创建class a的一个对象的时候,拿new运算符来说,他总是会先去请求一块该对象期望大小的内存,然后调用class a的构造函数并传入所申请内存的地址作为this指针完成构造。 如果class a有其他类类型的成员变量,或者继承自其他类的话,他们的构造顺序又会是怎样的呢?下边是测试代码:class a{public: a() { cout << "ac" <
2015-03-29 10:59:24 656
原创 windows窗口类的封装——内联汇编传this
先贴一段简单的用 Windows Api创建窗口的代码: #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ stat
2014-12-25 00:35:10 607
原创 const对象,const成员函数总结
const对象:为了防止对象内容被更改,在对象声明前加上const限定符将其声明为const对象,const对象必须在声明的时候直接初始化。const对象仍然是个左值,但是这个左值是不可修改的,任何企图修改const对象的尝试都会导致编译错误。把一个非const变量定义在文件中,假设已经做了合适的声明,就可在另外的文件中使用://file1.cppint counter; /
2014-12-07 10:51:17 1166
转载 C语言中的EOF和feof()
在c语言中经常用EOF和feof()来判断文件的结束,现将有关用法总结如下:定义EOF是End Of File 的缩写,是c语言中标准库中定义的宏,定义为:#define EOF (-1); feof() 用于测试流文件的结束,有宏和函数两种定义:宏定义: #define feof(_stream) ((_stream)->_flag & _IOEOF),其中_IOEO
2014-10-23 16:46:47 691
转载 exit(0)与exit(1)、return区别
exit(0):正常运行程序并退出程序;exit(1):非正常运行导致退出程序;return():返回函数,若在主函数中,则会退出函数并返回一值。详细说: 1. return返回函数值,是关键字; exit 是一个函数。 2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。 3. retur
2014-10-02 13:38:46 394
转载 printf、sprintf与fprintf 的用法区分
1: fprintf()#include int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如 char name[20] = "Mary"; FILE
2014-10-02 13:34:10 396
原创 查看系统版本号
一、查看内核版本方法一: 命令: uname -a 作用: 查看系统内核版本号及系统名称 方法二: 命令: cat /proc/version 作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称 补充说明: /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文
2014-10-01 10:17:25 815
原创 ctags操作命令
Ctrl+] 跳到当前光标下单词的标签Ctrl+O 返回上一个标签Ctrl+T 返回上一个标签:tag TagName 跳到TagName标签以上命令是在当前窗口显示标签,当前窗口的文件替代为包标签的文件,当前窗口光标跳到标签位置。如果不希望在当前窗口显示标签,可以使用以下命令::stag TagName 新窗口显示TagName标签,光标跳到标签处Ctrl+W +
2014-10-01 09:55:14 563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人