<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[From zero]]></title><description><![CDATA[昨夜西风凋碧树。独上高楼，望尽天涯路。]]></description><link>https://blog.youkuaiyun.com/abelx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; abelx]]></copyright><item><title><![CDATA[shell命令重定向与管道]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/61198455</link><guid>https://blog.youkuaiyun.com/abelx/article/details/61198455</guid><author>abelx</author><pubDate>Fri, 10 Mar 2017 15:52:01 +0800</pubDate><description><![CDATA[重定向 
重定向标准输出：>file or 1>file
重定向标准错误：2>file
重定向标准输出和错误到同一文件：>file 2>&1
重定向标准输入：< file
管道： cmd1 | cmd2 把cmd1的输出重定向到cmd2的标准输入
符号解释 
> 输出，< 输入， 0 标准输入，1 标准输出，2 标准错误]]></description><category></category></item><item><title><![CDATA[字符串匹配Sunday算法C++实现]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/50801609</link><guid>https://blog.youkuaiyun.com/abelx/article/details/50801609</guid><author>abelx</author><pubDate>Fri, 04 Mar 2016 12:04:21 +0800</pubDate><description><![CDATA[模式匹配算法都需要一个源串的滑动指针i和模式串的滑动指针j。普通的匹配算法在字符失配时需要同时回溯i和j，复杂度为o(m*n)。而改进的KMP匹配算法算法就是在失配时不回溯源串指针i，只回溯j到最长前缀处使得复杂度达到哦o(n)。而Sunday算法不仅不回溯i，而且可以使i跨越模式串前进，进一步降低复杂度，而且如果不谈Sunday算法的原理，单就算法本身和实现来讲要比KMP算法简单很多，更加容易理解]]></description><category></category></item><item><title><![CDATA[KMP字符串匹配算法的分析实现]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/50662748</link><guid>https://blog.youkuaiyun.com/abelx/article/details/50662748</guid><author>abelx</author><pubDate>Sun, 14 Feb 2016 13:40:29 +0800</pubDate><description><![CDATA[KMP算法中的next数组构造是一个关键问题，但是博主发现next数组的构造方法有很多，不同的算法实现中构造出的next数组也有所不同，有些方法实在是晦涩难懂。【经典算法】——KMP，深入讲解next数组的求解，这篇博客提供了一种比较简明的理解和构造next数组的方法。引入最长部分匹配长度的概念，实质上就是字符串的前缀（去掉首字符）和后缀（去掉尾字符）相同的最大长度：
“A”的前缀和后缀都为空集，共]]></description><category></category></item><item><title><![CDATA[平衡二叉树（可重复key）插入删除（c/c++实现）]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/45098277</link><guid>https://blog.youkuaiyun.com/abelx/article/details/45098277</guid><author>abelx</author><pubDate>Fri, 17 Apr 2015 16:17:21 +0800</pubDate><description><![CDATA[平衡二叉树插入，比较简单，主要工作在插入结点后的调平，通过递归调用InsertAVL，插入结点调整返回调整后的数高度是否变化，依次调整返回，平衡二叉树插入结点的调整有四种情况，实现主要是在R_Balance和L_Balance里。
删除结点要复杂一点，递归查找删除结点，找到后判断：
外界链表是否为空，如果不空取下一个，树不变
否则：
1）如果为叶子结点，直接删掉，调整返回
2）如果只有一]]></description><category></category></item><item><title><![CDATA[c++构造、析构顺序]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/44725303</link><guid>https://blog.youkuaiyun.com/abelx/article/details/44725303</guid><author>abelx</author><pubDate>Sun, 29 Mar 2015 10:59:24 +0800</pubDate><description><![CDATA[在创建class a的一个对象的时候，拿new运算符来说，他总是会先去请求一块该对象期望大小的内存，然后调用class a的构造函数并传入所申请内存的地址作为this指针完成构造。 
如果class a有其他类类型的成员变量，或者继承自其他类的话，他们的构造顺序又会是怎样的呢？下边是测试代码：class a
{
public:
    a()
    {
        cout << "ac" <]]></description><category></category></item><item><title><![CDATA[windows窗口类的封装——内联汇编传this]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/42134009</link><guid>https://blog.youkuaiyun.com/abelx/article/details/42134009</guid><author>abelx</author><pubDate>Thu, 25 Dec 2014 00:35:10 +0800</pubDate><description><![CDATA[先贴一段简单的用 Windows Api创建窗口的代码：
 #include 

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	stat]]></description><category></category></item><item><title><![CDATA[const对象，const成员函数总结]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/41786131</link><guid>https://blog.youkuaiyun.com/abelx/article/details/41786131</guid><author>abelx</author><pubDate>Sun, 07 Dec 2014 10:51:17 +0800</pubDate><description><![CDATA[const对象:

为了防止对象内容被更改，在对象声明前加上const限定符将其声明为const对象，const对象必须在声明的时候直接初始化。const对象仍然是个左值，但是这个左值是不可修改的，任何企图修改const对象的尝试都会导致编译错误。
把一个非const变量定义在文件中，假设已经做了合适的声明，就可在另外的文件中使用：
//file1.cpp
int counter;  /]]></description><category></category></item><item><title><![CDATA[torrent文件解析，bencode编码文件解析及其c语言实现]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/41288857</link><guid>https://blog.youkuaiyun.com/abelx/article/details/41288857</guid><author>abelx</author><pubDate>Wed, 19 Nov 2014 21:12:02 +0800</pubDate><description><![CDATA[Torrent文件的所有内容是一个Bencoding的字典。]]></description><category></category></item><item><title><![CDATA[C语言中的EOF和feof()]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/40400131</link><guid>https://blog.youkuaiyun.com/abelx/article/details/40400131</guid><author>abelx</author><pubDate>Thu, 23 Oct 2014 16:46:47 +0800</pubDate><description><![CDATA[在c语言中经常用EOF和feof()来判断文件的结束，现将有关用法总结如下：

定义
EOF是End Of File 的缩写，是c语言中标准库中定义的宏，定义为：#define  EOF  (-1)；  
feof() 用于测试流文件的结束，有宏和函数两种定义：
宏定义： #define feof(_stream)  ((_stream)->_flag & _IOEOF)，其中_IOEO]]></description><category></category></item><item><title><![CDATA[unix\linux编程学习笔记之终端模式]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/39829233</link><guid>https://blog.youkuaiyun.com/abelx/article/details/39829233</guid><author>abelx</author><pubDate>Mon, 06 Oct 2014 16:23:37 +0800</pubDate><description><![CDATA[1、规范模式
规范模式，]]></description><category></category></item><item><title><![CDATA[exit（0）与exit（1）、return区别]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/39736203</link><guid>https://blog.youkuaiyun.com/abelx/article/details/39736203</guid><author>abelx</author><pubDate>Thu, 02 Oct 2014 13:38:46 +0800</pubDate><description><![CDATA[exit（0）：正常运行程序并退出程序；

exit（1）：非正常运行导致退出程序；

return（）：返回函数，若在主函数中，则会退出函数并返回一值。

详细说：

  1. return返回函数值，是关键字；  exit 是一个函数。

  2. return是语言级别的，它表示了调用堆栈的返回；而exit是系统调用级别的，它表示了一个进程的结束。
  3. retur]]></description><category></category></item><item><title><![CDATA[printf、sprintf与fprintf 的用法区分]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/39736183</link><guid>https://blog.youkuaiyun.com/abelx/article/details/39736183</guid><author>abelx</author><pubDate>Thu, 02 Oct 2014 13:34:10 +0800</pubDate><description><![CDATA[1: fprintf()
#include  
int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如
    char name[20] = "Mary";
    FILE ]]></description><category></category></item><item><title><![CDATA[查看系统版本号]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/39716935</link><guid>https://blog.youkuaiyun.com/abelx/article/details/39716935</guid><author>abelx</author><pubDate>Wed, 01 Oct 2014 10:17:25 +0800</pubDate><description><![CDATA[一、查看内核版本
方法一： 
命令： uname -a 
作用： 查看系统内核版本号及系统名称 
方法二： 
命令： cat /proc/version 
作用： 查看目录"/proc"下version的信息，也可以得到当前系统的内核版本号及系统名称 
补充说明： 
／proc文件系统，它不是普通的文件系统，而是系统内核的映像，也就是说，该目录中的文件是存放在系统内存之中的，它以文]]></description><category></category></item><item><title><![CDATA[ctags操作命令]]></title><link>https://blog.youkuaiyun.com/abelx/article/details/39716853</link><guid>https://blog.youkuaiyun.com/abelx/article/details/39716853</guid><author>abelx</author><pubDate>Wed, 01 Oct 2014 09:55:14 +0800</pubDate><description><![CDATA[Ctrl＋］  跳到当前光标下单词的标签
Ctrl＋O  返回上一个标签
Ctrl＋T  返回上一个标签
:tag TagName 跳到TagName标签
以上命令是在当前窗口显示标签，当前窗口的文件替代为包标签的文件，当前窗口光标跳到标签位置。如果不希望在当前窗口显示标签，可以使用以下命令：
:stag TagName 新窗口显示TagName标签，光标跳到标签处
Ctrl＋W + ]]></description><category></category></item></channel></rss>