<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>[HAWKOR] 猎鹰天空</title>
	<atom:link href="http://hawkor.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hawkor.com</link>
	<description>Hawk&#039;s Heaven</description>
	<lastBuildDate>Sat, 07 Jan 2012 13:40:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>12306 自动登录 自动刷票攻略</title>
		<link>http://hawkor.com/%e6%9d%82%e4%b8%83%e6%9d%82%e5%85%ab/12306-%e8%87%aa%e5%8a%a8%e7%99%bb%e5%bd%95-%e8%87%aa%e5%8a%a8%e5%88%b7%e7%a5%a8%e6%94%bb%e7%95%a5/</link>
		<comments>http://hawkor.com/%e6%9d%82%e4%b8%83%e6%9d%82%e5%85%ab/12306-%e8%87%aa%e5%8a%a8%e7%99%bb%e5%bd%95-%e8%87%aa%e5%8a%a8%e5%88%b7%e7%a5%a8%e6%94%bb%e7%95%a5/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 12:29:23 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://hawkor.com/%e6%9d%82%e4%b8%83%e6%9d%82%e5%85%ab/12306-%e8%87%aa%e5%8a%a8%e7%99%bb%e5%bd%95-%e8%87%aa%e5%8a%a8%e5%88%b7%e7%a5%a8%e6%94%bb%e7%95%a5/</guid>
		<description><![CDATA[网络牛人就是多啊，真心感谢这些脚本的作者，下面简单介绍如何购票。 工具： firefox + GreaseMonkey插件 + 自动登录脚本 + 自动刷票脚本 1. 首先安装firefox及其插件GreaseMonkey（用来管理JS脚本的） 2. 点击链接安装自动登录脚本，原始链接：https://gist.github.com/raw/1570973/f200dd587f6d68ab81edf74436b1fb7d91c79973/12306AutoLogin.user.js 作者实时更新中，最新的在这儿：https://gist.github.com/1570973 备用链接： 该插件严重推荐：只需要输入一次用户名、密码、验证码，即可进行多次尝试登录，直至登录成功。 3. 点击链接安装自动刷票的脚本, 原始链接：https://gist.github.com/raw/1554666/1b200667f1576f8f41657e65016d4853ed3a9998/12306.user.js 代码原始地址：https://gist.github.com/1554666 备用链接： 自动登录使用帮助： 该插件安装完成后，即可转到12306的网站登录：https://dynamic.12306.cn/otsweb/ , 输入用户名、密码、验证码，插件启用后，会多一个自动登录按钮， 然后点“自动登录”按钮即可。 如果登录成功后，会跳转到车票查询页面，使用自动刷票工具查询剩余票的信息]]></description>
			<content:encoded><![CDATA[<p>网络牛人就是多啊，真心感谢这些脚本的作者，下面简单介绍如何购票。</p>
<p>工具：</p>
<p>firefox + GreaseMonkey插件 + 自动登录脚本 + 自动刷票脚本</p>
<p>1. 首先安装firefox及其插件GreaseMonkey（用来管理JS脚本的）</p>
<p>2. 点击链接安装自动登录脚本，原始链接：<a title="https://gist.github.com/raw/1570973/0064a3a6ed37ef70e817d4f5d69bef0ac76b5345/12306AutoLogin.user.js" href="https://gist.github.com/raw/1570973/0064a3a6ed37ef70e817d4f5d69bef0ac76b5345/12306AutoLogin.user.js">https://gist.github.com/raw/1570973/f200dd587f6d68ab81edf74436b1fb7d91c79973/12306AutoLogin.user.js</a></p>
<p>作者实时更新中，最新的在这儿：https://gist.github.com/1570973</p>
<p>备用链接：</p>
<p>该插件严重推荐：只需要输入一次用户名、密码、验证码，即可进行多次尝试登录，直至登录成功。</p>
<p>3. 点击链接安装自动刷票的脚本, 原始链接：https://gist.github.com/raw/1554666/1b200667f1576f8f41657e65016d4853ed3a9998/12306.user.js</p>
<p><span style="color: #000000;">代码原始地址</span>：https://gist.github.com/1554666</p>
<p>备用链接：</p>
<p>自动登录使用帮助：</p>
<p>该插件安装完成后，即可转到12306的网站登录：<a href="https://dynamic.12306.cn/otsweb/">https://dynamic.12306.cn/otsweb/</a> , 输入用户名、密码、验证码，插件启用后，会多一个自动登录按钮， 然后点“自动登录”按钮即可。</p>
<p>如果登录成功后，会跳转到车票查询页面，使用自动刷票工具查询剩余票的信息</p>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/%e6%9d%82%e4%b8%83%e6%9d%82%e5%85%ab/12306-%e8%87%aa%e5%8a%a8%e7%99%bb%e5%bd%95-%e8%87%aa%e5%8a%a8%e5%88%b7%e7%a5%a8%e6%94%bb%e7%95%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Divide And Conquer</title>
		<link>http://hawkor.com/programming/divide-and-conquer/</link>
		<comments>http://hawkor.com/programming/divide-and-conquer/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 04:34:55 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[C&&C++]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://hawkor.com/?p=333</guid>
		<description><![CDATA[Merge Sort: 1234567891011121314151617181920212223242526272829303132333435363738394041void Merge&#40;int list&#91;&#93;, int lowIndex, int highIndex, int midIndex&#41; &#123; &#160; &#160;int *tempList = new int&#91;highIndex-lowIndex+1&#93;; &#160; &#160;int firstLow = lowIndex; &#160; &#160;int secondLow = midIndex + 1; &#160; &#160;int index = 0; &#160; &#160;while&#40;firstLow &#60;= midIndex &#38;&#38; secondLow &#60;= highIndex&#41; &#160; &#160;&#123; &#160; &#160; &#160; if &#40;list&#91;firstLow&#93; &#60; list&#91;secondLow&#93;&#41; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Merge Sort:</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">void</span> Merge<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> list<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000ff;">int</span> lowIndex, <span style="color: #0000ff;">int</span> highIndex, <span style="color: #0000ff;">int</span> midIndex<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> <span style="color: #000040;">*</span>tempList <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> <span style="color: #0000ff;">int</span><span style="color: #008000;">&#91;</span>highIndex<span style="color: #000040;">-</span>lowIndex<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> firstLow <span style="color: #000080;">=</span> lowIndex<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> secondLow <span style="color: #000080;">=</span> midIndex <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> index <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>firstLow <span style="color: #000080;">&lt;=</span> midIndex <span style="color: #000040;">&amp;&amp;</span> secondLow <span style="color: #000080;">&lt;=</span> highIndex<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#91;</span>firstLow<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;</span> list<span style="color: #008000;">&#91;</span>secondLow<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tempList<span style="color: #008000;">&#91;</span>index<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> list<span style="color: #008000;">&#91;</span>firstLow<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tempList<span style="color: #008000;">&#91;</span>index<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> list<span style="color: #008000;">&#91;</span>secondLow<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>firstLow <span style="color: #000080;">&lt;=</span> midIndex<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; tempList<span style="color: #008000;">&#91;</span>index<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> list<span style="color: #008000;">&#91;</span>firstLow<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>secondLow <span style="color: #000080;">&lt;=</span> highIndex<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; tempList<span style="color: #008000;">&#91;</span>index<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> list<span style="color: #008000;">&#91;</span>secondLow<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> ii <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> ii <span style="color: #000080;">&lt;</span> index<span style="color: #008080;">;</span> ii<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; list<span style="color: #008000;">&#91;</span>lowIndex<span style="color: #000040;">+</span>ii<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> tempList<span style="color: #008000;">&#91;</span>ii<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> tempList<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> MergeSort<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> list<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000ff;">int</span> lowIndex, <span style="color: #0000ff;">int</span> highIndex<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>lowIndex <span style="color: #000080;">&lt;</span> highIndex<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> midIndex <span style="color: #000080;">=</span> lowIndex <span style="color: #000040;">+</span> <span style="color: #008000;">&#40;</span>highIndex<span style="color: #000040;">-</span>lowIndex<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #0000dd;">2</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; MergeSort<span style="color: #008000;">&#40;</span>list, lowIndex, midIndex<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; MergeSort<span style="color: #008000;">&#40;</span>list, midIndex<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span>, highIndex<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; Merge<span style="color: #008000;">&#40;</span>list, lowIndex, highIndex, midIndex<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/divide-and-conquer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursion</title>
		<link>http://hawkor.com/programming/cc/recursion/</link>
		<comments>http://hawkor.com/programming/cc/recursion/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 03:11:39 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[C&&C++]]></category>

		<guid isPermaLink="false">http://hawkor.com/?p=323</guid>
		<description><![CDATA[递归生成某集合的所有序列: 123456789101112131415161718192021222324252627template &#60;class T&#62; void Swap&#40;T&#38; a, T&#38; b&#41; &#123; &#160; &#160;T temp = a; &#160; &#160;a = b; &#160; &#160;b = temp; &#125; template &#60;class T&#62; void Permulation&#40;T list&#91;&#93;, int k, int m&#41; &#123; &#160; &#160;if &#40;k == m&#41; &#160; &#160;&#123; &#160; &#160; &#160; for &#40;int i = 0; i &#60;= m; i++&#41; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>递归生成某集合的所有序列:</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">class</span> T<span style="color: #000080;">&gt;</span><br />
<span style="color: #0000ff;">void</span> Swap<span style="color: #008000;">&#40;</span>T<span style="color: #000040;">&amp;</span> a, T<span style="color: #000040;">&amp;</span> b<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;T temp <span style="color: #000080;">=</span> a<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;a <span style="color: #000080;">=</span> b<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;b <span style="color: #000080;">=</span> temp<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">class</span> T<span style="color: #000080;">&gt;</span><br />
<span style="color: #0000ff;">void</span> Permulation<span style="color: #008000;">&#40;</span>T list<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000ff;">int</span> k, <span style="color: #0000ff;">int</span> m<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>k <span style="color: #000080;">==</span> m<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> m<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> list<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> k<span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> m<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Swap<span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#91;</span>k<span style="color: #008000;">&#93;</span>, list<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Permulation<span style="color: #008000;">&#40;</span>list, k<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span>, m<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Swap<span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#91;</span>k<span style="color: #008000;">&#93;</span>, list<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>递归生成某集合的所有子集：</p>
<p>思想：<br />
设集合X (A1, A2, A3,&#8230;, An)的所有子集为S[X(n)]，从集合X中移走A1的子集X(n-1)的所有子集集合记为S[X(n-1)]<br />
S[X(n)] = S[X(n-1)] ∪ {S[X(n-1)]每个子集加上A1}<br />
例如 集合{A, B, C}<br />
{A}:<br />
{} {A}<br />
{A B}:<br />
{} {A} ∪ {B} {A B}<br />
{A B C}:<br />
{} {A} {B} {A B} ∪ {C} {A C} {B C} {A B C}</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">class</span> T<span style="color: #000080;">&gt;</span><br />
<span style="color: #0000ff;">void</span> FindSubSets<span style="color: #008000;">&#40;</span>T list<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000ff;">int</span> lowIndex, <span style="color: #0000ff;">int</span> highIndex, vector<span style="color: #000080;">&lt;</span> set<span style="color: #000080;">&lt;</span>T<span style="color: #000080;">&gt;</span> <span style="color: #000080;">&gt;</span> <span style="color: #000040;">&amp;</span>results<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>lowIndex <span style="color: #000080;">==</span> highIndex<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; set<span style="color: #000080;">&lt;</span>T<span style="color: #000080;">&gt;</span> empty<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; set<span style="color: #000080;">&lt;</span>T<span style="color: #000080;">&gt;</span> oneElem<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; oneElem.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#91;</span>lowIndex<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; results.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>empty<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; results.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>oneElem<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; FindSubSets<span style="color: #008000;">&#40;</span>list, lowIndex<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span>, highIndex, results<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> existedSetSize <span style="color: #000080;">=</span> results.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> jj <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> jj <span style="color: #000080;">&lt;</span> existedSetSize<span style="color: #008080;">;</span> jj<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set<span style="color: #000080;">&lt;</span>T<span style="color: #000080;">&gt;</span> newSet<span style="color: #008000;">&#40;</span>results<span style="color: #008000;">&#91;</span>jj<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;newSet.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>list<span style="color: #008000;">&#91;</span>lowIndex<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;results.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>newSet<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>斐波那契数列计算：</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">递归：<br />
<span style="color: #0000ff;">int</span> r_Fibonacci<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span> n <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> n<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> r_Fibonacci<span style="color: #008000;">&#40;</span>n<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> r_Fibonacci<span style="color: #008000;">&#40;</span>n<span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
非递归：<br />
<span style="color: #0000ff;">int</span> fibonacci<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span> n <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> n<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> f0 <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> f1 <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> ii <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> ii <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> ii<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; f1 <span style="color: #000080;">=</span> f1 <span style="color: #000040;">+</span> f0<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; f0 <span style="color: #000080;">=</span> f1 <span style="color: #000040;">-</span> f0<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> f1<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>递归查找：</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">class</span> InputIter, <span style="color: #0000ff;">class</span> T<span style="color: #000080;">&gt;</span><br />
InputIter find<span style="color: #008000;">&#40;</span>InputIter begin, InputIter end, <span style="color: #0000ff;">const</span> T<span style="color: #000040;">&amp;</span> val<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>begin <span style="color: #000040;">!</span><span style="color: #000080;">=</span> end <span style="color: #000040;">&amp;&amp;</span> <span style="color: #000040;">*</span>begin <span style="color: #000040;">!</span><span style="color: #000080;">=</span> val<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> find<span style="color: #008000;">&#40;</span>begin<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span>, end, val<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> begin<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/cc/recursion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3N+1</title>
		<link>http://hawkor.com/programming/3n1/</link>
		<comments>http://hawkor.com/programming/3n1/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 02:34:47 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[C&&C++]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://hawkor.com/?p=319</guid>
		<description><![CDATA[1234567891011121314151617181920212223int threeN&#40;int n&#41; &#123; &#160; &#160;if &#40;n%2==0&#41; &#160; &#160; &#160; return n/2; &#160; &#160;else &#160; &#160; &#160; return n*3+1; &#125; int getLength&#40;int n&#41; &#123; &#160; &#160;static map&#60;int, int&#62; history; &#160; &#160;int key = n; &#160; &#160; &#160; &#160;if &#40;n == 1&#41; &#160; &#160; &#160; return 1; &#160; &#160;if &#40;history.find&#40;key&#41; != history.end&#40;&#41;&#41; &#160; &#160; &#160; return [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">int</span> threeN<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n<span style="color: #000040;">%</span><span style="color:#800080;">2</span><span style="color: #000080;">==</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> n<span style="color: #000040;">/</span><span style="color: #0000dd;">2</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> n<span style="color: #000040;">*</span><span style="color: #0000dd;">3</span><span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">int</span> getLength<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">static</span> map<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> history<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> key <span style="color: #000080;">=</span> n<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>history.<span style="color: #007788;">find</span><span style="color: #008000;">&#40;</span>key<span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> history.<span style="color: #007788;">end</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> history<span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> length <span style="color: #000080;">=</span> getLength<span style="color: #008000;">&#40;</span>threeN<span style="color: #008000;">&#40;</span>n<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;history<span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> length<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> length<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/3n1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>链表</title>
		<link>http://hawkor.com/programming/%e9%93%be%e8%a1%a8/</link>
		<comments>http://hawkor.com/programming/%e9%93%be%e8%a1%a8/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 05:57:26 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[C&&C++]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://hawkor.com/?p=314</guid>
		<description><![CDATA[1. 逆转链表 123456789101112131415161718192021222324252627282930typedef struct Node &#123; &#160; &#160;int Data; &#160; &#160;Node *Next; &#125;; Node *ReverseList&#40;Node *pHead&#41; &#123; &#160; &#160;Node *pReverseHead = NULL; &#160; &#160;while &#40;pHead != NULL&#41; &#160; &#160;&#123; &#160; &#160; &#160; Node *pTmp = pHead; &#160; &#160; &#160; pHead = pHead-&#62;Next; &#160; &#160; &#160; pTmp-&#62;Next = pReverseHead; &#160; &#160; &#160; pReverseHead = pTmp; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>1. 逆转链表</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">struct</span> Node<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> Data<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;Node <span style="color: #000040;">*</span>Next<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<br />
Node <span style="color: #000040;">*</span>ReverseList<span style="color: #008000;">&#40;</span>Node <span style="color: #000040;">*</span>pHead<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;Node <span style="color: #000040;">*</span>pReverseHead <span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>pHead <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Node <span style="color: #000040;">*</span>pTmp <span style="color: #000080;">=</span> pHead<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; pHead <span style="color: #000080;">=</span> pHead<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Next<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; pTmp<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Next <span style="color: #000080;">=</span> pReverseHead<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; pReverseHead <span style="color: #000080;">=</span> pTmp<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> pReverseHead<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">bool</span> hasCircle<span style="color: #008000;">&#40;</span>Node <span style="color: #000040;">*</span>pHead<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;Node <span style="color: #000040;">*</span>pSlow <span style="color: #000080;">=</span> pHead<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;Node <span style="color: #000040;">*</span>pFast <span style="color: #000080;">=</span> pHead<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>pSlow <span style="color: #000040;">&amp;&amp;</span> pFast <span style="color: #000040;">&amp;&amp;</span> <span style="color: #008000;">&#40;</span>pFast<span style="color: #000080;">=</span>pFast<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Next<span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> pFast<span style="color: #000040;">!</span><span style="color: #000080;">=</span>pSlow<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; pSlow<span style="color: #000080;">=</span>pSlow<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Next<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; pFast<span style="color: #000080;">=</span>pFast<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>Next<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> pFast <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/%e9%93%be%e8%a1%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设计类时要考虑的问题</title>
		<link>http://hawkor.com/programming/%e8%ae%be%e8%ae%a1%e7%b1%bb%e6%97%b6%e8%a6%81%e8%80%83%e8%99%91%e7%9a%84%e9%97%ae%e9%a2%98/</link>
		<comments>http://hawkor.com/programming/%e8%ae%be%e8%ae%a1%e7%b1%bb%e6%97%b6%e8%a6%81%e8%80%83%e8%99%91%e7%9a%84%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 03:20:21 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[C&&C++]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[类设计]]></category>

		<guid isPermaLink="false">http://hawkor.com/programming/%e8%ae%be%e8%ae%a1%e7%b1%bb%e6%97%b6%e8%a6%81%e8%80%83%e8%99%91%e7%9a%84%e9%97%ae%e9%a2%98/</guid>
		<description><![CDATA[1. 你的类需要构造函数吗？其访问控制级别怎样？ 2. 数据成员需要设计成私有的吗？ 3. 需要无参的构造函数吗？ 4. 需要析构函数吗？需要设计成虚析构函数吗？ 5. 需要复制构造函数吗 如果在构造函数中分配资源，则需要复制构造函数 6. 需要赋值操作符吗？ 检查自我赋值 释放旧值， 复制新值 7. 需要定义关系运算符吗？ 8. 参数类型需要加上 const 吗？ 9. 成员函数需要时 const 吗？]]></description>
			<content:encoded><![CDATA[<p>1. 你的类需要构造函数吗？其访问控制级别怎样？</p>
<p>2. 数据成员需要设计成私有的吗？</p>
<p>3. 需要无参的构造函数吗？</p>
<p>4. 需要析构函数吗？需要设计成虚析构函数吗？</p>
<p>5. 需要复制构造函数吗</p>
<blockquote><p><font style="background-color: #ffffff">如果在构造函数中分配资源，则需要复制构造函数</font></p>
</blockquote>
<p>6. 需要赋值操作符吗？</p>
<blockquote><p><font style="background-color: #ffffff">检查自我赋值</font></p>
<p><font style="background-color: #ffffff">释放旧值， 复制新值</font></p>
</blockquote>
<p>7. 需要定义关系运算符吗？</p>
<p>8. 参数类型需要加上 const 吗？</p>
<p>9. 成员函数需要时 const 吗？</p>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/%e8%ae%be%e8%ae%a1%e7%b1%bb%e6%97%b6%e8%a6%81%e8%80%83%e8%99%91%e7%9a%84%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinDBG 调用栈命令</title>
		<link>http://hawkor.com/programming/windbg-%e8%b0%83%e7%94%a8%e6%a0%88%e5%91%bd%e4%bb%a4/</link>
		<comments>http://hawkor.com/programming/windbg-%e8%b0%83%e7%94%a8%e6%a0%88%e5%91%bd%e4%bb%a4/#comments</comments>
		<pubDate>Thu, 12 May 2011 04:19:11 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WinDBG; Debug]]></category>

		<guid isPermaLink="false">http://hawkor.com/?p=311</guid>
		<description><![CDATA[命令 ========== k k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256。 kp 5 显示调用栈中前5个函数以及他们的参数. kb 5 显示调用栈中前五个函数以及他们的前三个参数. kf 5 显示在调用栈中五个函数所使用的栈的大小. 每个栈帧所占的空间使用量的计算方法是: 将当前函数的栈基指针与在函数中调用的任何一个函数栈基指针相减. 举例: 手动构造栈的实践- 如何手工构造调用栈 ============ 首先用几幅图说明一下栈的特点, 帮助大家理解. 1. 栈向低地址增长. 2. 向栈中压入数据, 栈中的情况如图. 3. 有函数调用的栈中的情况. 注意, 手工构造栈的时候, 我们需要利用的是上面图中显示的一个模式: 在内存中的一系列的值是可以被识别出来的, 这些值表示当前站中的某个地址, 并且在这些值之后是一个可执行的地址.]]></description>
			<content:encoded><![CDATA[<p>命令</p>
<p>==========</p>
<p>k </p>
<p>k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256。</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://hawkor.com/wp-content/uploads/2011/05/image_thumb.png" width="377" height="51" /></a></p>
<p>kp 5 </p>
<p>显示调用栈中前5个函数以及他们的参数. </p>
<p><span id="more-311"></span>
<p>kb 5 </p>
<p>显示调用栈中前五个函数以及他们的前三个参数. </p>
<p>kf 5 </p>
<p>显示在调用栈中五个函数所使用的栈的大小.</p>
<p>每个栈帧所占的空间使用量的计算方法是: 将当前函数的栈基指针与在函数中调用的任何一个函数栈基指针相减.</p>
<p>举例:</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/clip_image004.gif"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://hawkor.com/wp-content/uploads/2011/05/clip_image004_thumb.gif" width="545" height="268" /></a></p>
<p>手动构造栈的实践- 如何手工构造调用栈</p>
<p>============</p>
<p>首先用几幅图说明一下栈的特点, 帮助大家理解.</p>
<p>1. 栈向低地址增长.</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/clip_image005.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://hawkor.com/wp-content/uploads/2011/05/clip_image005_thumb.jpg" width="228" height="244" /></a></p>
<p>2. 向栈中压入数据, 栈中的情况如图.</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/clip_image006.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://hawkor.com/wp-content/uploads/2011/05/clip_image006_thumb.jpg" width="394" height="306" /></a></p>
<p>3. 有函数调用的栈中的情况.</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/clip_image007.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://hawkor.com/wp-content/uploads/2011/05/clip_image007_thumb.jpg" width="397" height="310" /></a></p>
<p>注意, 手工构造栈的时候, 我们需要利用的是上面图中显示的一个模式:</p>
<p>在内存中的一系列的值是可以被识别出来的, 这些值表示当前站中的某个地址, 并且在这些值之后是一个可执行的地址.</p>
<p><a href="http://hawkor.com/wp-content/uploads/2011/05/clip_image009.gif"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://hawkor.com/wp-content/uploads/2011/05/clip_image009_thumb.gif" width="600" height="485" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/programming/windbg-%e8%b0%83%e7%94%a8%e6%a0%88%e5%91%bd%e4%bb%a4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Procrastination Flowchart</title>
		<link>http://hawkor.com/homeliving/the-procrastination-flowchart/</link>
		<comments>http://hawkor.com/homeliving/the-procrastination-flowchart/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 07:41:19 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[Home/Living]]></category>
		<category><![CDATA[我的图片]]></category>
		<category><![CDATA[生活随想]]></category>

		<guid isPermaLink="false">http://hawkor.com/homeliving/the-procrastination-flowchart/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://hawkor.com/wp-content/uploads/2011/04/procrastination-flowchart-12.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="procrastination-flowchart-1" src="http://hawkor.com/wp-content/uploads/2011/04/procrastination-flowchart-1_thumb1.jpg" border="0" alt="procrastination-flowchart-1" width="967" height="772" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/homeliving/the-procrastination-flowchart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Directory Structure (File System Structure) Explained with Examples</title>
		<link>http://hawkor.com/computers/linux-directory-structure-file-system-structure-explained-with-examples/</link>
		<comments>http://hawkor.com/computers/linux-directory-structure-file-system-structure-explained-with-examples/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 07:33:01 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[Linux;File System; 文件系统]]></category>

		<guid isPermaLink="false">http://hawkor.com/computers/linux-directory-structure-file-system-structure-explained-with-examples/</guid>
		<description><![CDATA[by Ramesh Natarajan on September 8, 2010 Have you wondered why certain programs are located under /bin, or /sbin, or /usr/bin, or /usr/sbin? For example, less command is located under /usr/bin directory. Why not /bin, or /sbin, or /usr/sbin? What is the different between all these directories? In this article, let us review the Linux [...]]]></description>
			<content:encoded><![CDATA[<p>by Ramesh Natarajan on <abbr>September 8, 2010</abbr></p>
<p>Have you wondered why certain programs are located under /bin, or /sbin, or /usr/bin, or /usr/sbin?</p>
<p>For example, less command is located under /usr/bin directory. Why not /bin, or /sbin, or /usr/sbin? What is the different between all these directories?</p>
<p>In this article, let us review the Linux filesystem structures and understand the meaning of individual high-level directories.    <br /><img title="Linux File System Structure" alt="" src="http://www.thegeekstuff.com/wp-content/uploads/2010/11/filesystem-structure.png" width="558" height="813" /></p>
<h5>1. / – Root</h5>
<ul>
<li>Every single file and directory starts from the root directory. </li>
<li>Only root user has write privilege under this directory. </li>
<li>Please note that /root is root user’s home directory, which is not same as /. </li>
</ul>
<h5>2. /bin – User Binaries</h5>
<ul>
<li>Contains binary executables. </li>
<li>Common linux commands you need to use in single-user modes are located under this directory. </li>
<li>Commands used by all the users of the system are located here. </li>
<li>For example: ps, ls, ping, grep, cp. </li>
</ul>
<h5>3. /sbin – System Binaries</h5>
<ul>
<li>Just like /bin, /sbin also contains binary executables. </li>
<li>But, the linux commands located under this directory are used typically by system aministrator, for system maintenance purpose. </li>
<li>For example: iptables, reboot, fdisk, ifconfig, swapon </li>
</ul>
<h5>4. /etc – Configuration Files</h5>
<ul>
<li>Contains configuration files required by all programs. </li>
<li>This also contains startup and shutdown shell scripts used to start/stop individual programs. </li>
<li>For example: /etc/resolv.conf, /etc/logrotate.conf </li>
</ul>
<h5>5. /dev – Device Files</h5>
<ul>
<li>Contains device files. </li>
<li>These include terminal devices, usb, or any device attached to the system. </li>
<li>For example: /dev/tty1, /dev/usbmon0 </li>
</ul>
<h5>6. /proc – Process Information</h5>
<ul>
<li>Contains information about system process. </li>
<li>This is a pseudo filesystem contains information about running process. For example: /proc/{pid} directory contains information about the process with that particular pid. </li>
<li>This is a virtual filesystem with text information about system resources. For example: /proc/uptime </li>
</ul>
<h5>7. /var – Variable Files</h5>
<ul>
<li>var stands for variable files. </li>
<li>Content of the files that are expected to grow can be found under this directory. </li>
<li>This includes — system log files (/var/log); packages and database files (/var/lib); emails (/var/mail); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp); </li>
</ul>
<h5>8. /tmp – Temporary Files</h5>
<ul>
<li>Directory that contains temporary files created by system and users. </li>
<li>Files under this directory are deleted when system is rebooted. </li>
</ul>
<h5>9. /usr – User Programs</h5>
<ul>
<li>Contains binaries, libraries, documentation, and source-code for second level programs. </li>
<li>/usr/bin contains binary files for user programs. If you can’t find a user binary under /bin, look under /usr/bin. For example: at, awk, cc, less, scp </li>
<li>/usr/sbin contains binary files for system administrators. If you can’t find a system binary under /sbin, look under /usr/sbin. For example: atd, cron, sshd, useradd, userdel </li>
<li>/usr/lib contains libraries for /usr/bin and /usr/sbin </li>
<li>/usr/local contains users programs that you install from source. For example, when you install apache from source, it goes under /usr/local/apache2 </li>
</ul>
<h5>10. /home – Home Directories</h5>
<ul>
<li>Home directories for all users to store their personal files. </li>
<li>For example: /home/john, /home/nikita </li>
</ul>
<h5>11. /boot – Boot Loader Files</h5>
<ul>
<li>Contains boot loader related files. </li>
<li>Kernel initrd, vmlinux, grub files are located under /boot </li>
<li>For example: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic </li>
</ul>
<h5>12. /lib – System Libraries</h5>
<ul>
<li>Contains library files that supports the binaries located under /bin and /sbin </li>
<li>Library filenames are either ld* or lib*.so.* </li>
<li>For example: ld-2.11.1.so, libncurses.so.5.7 </li>
</ul>
<h5>13. /opt – Optional add-on Applications</h5>
<ul>
<li>opt stands for optional. </li>
<li>Contains add-on applications from individual vendors. </li>
<li>add-on applications should be installed under either /opt/ or /opt/ sub-directory. </li>
</ul>
<h5>14. /mnt – Mount Directory</h5>
<ul>
<li>Temporary mount directory where sysadmins can mount filesystems. </li>
</ul>
<h5>15. /media – Removable Media Devices</h5>
<ul>
<li>Temporary mount directory for removable devices. </li>
<li>For examples, /media/cdrom for CD-ROM; /media/floppy for floppy drives; /media/cdrecorder for CD writer </li>
</ul>
<h5>16. /srv – Service Data</h5>
<ul>
<li>srv stands for service. </li>
<li>Contains server specific services related data. </li>
<li>For example, /srv/cvs contains CVS related data. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/computers/linux-directory-structure-file-system-structure-explained-with-examples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>每日字根：am, amat [L] = to love 爱</title>
		<link>http://hawkor.com/english/%e6%af%8f%e6%97%a5%e5%ad%97%e6%a0%b9%ef%bc%9aam-amat-l-to-love-%e7%88%b1/</link>
		<comments>http://hawkor.com/english/%e6%af%8f%e6%97%a5%e5%ad%97%e6%a0%b9%ef%bc%9aam-amat-l-to-love-%e7%88%b1/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 07:31:46 +0000</pubDate>
		<dc:creator>Jarod Lee</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[单词背诵； 词根记忆；英语学习;字根学习法]]></category>

		<guid isPermaLink="false">http://hawkor.com/english/%e6%af%8f%e6%97%a5%e5%ad%97%e6%a0%b9%ef%bc%9aam-amat-l-to-love-%e7%88%b1/</guid>
		<description><![CDATA[字根am, amat来自于拉丁文amare, amat, 意思都相当于 to love. 常用词amiable(亲切的，和蔼可亲的）， amateur（业余爱好者，业余艺术家） amiable ['eimjәbl] 【am = to love； –i-; –able = capable of 可…的 ==&#62; “capable of being loved 可爱的&#34; &#8212;&#62; a. 可爱的， 和蔼的】 an amiable old lady 可爱的老太太 amiableness【amiable –ness】n. 仁慈；厚道 amateur ['æmәtә(:), 'æmәtjuә] 【amat = to love 爱好； –eur(-er) n.=person 人 ==&#62; “person who does something for [...]]]></description>
			<content:encoded><![CDATA[<p>字根am, amat来自于拉丁文amare, amat, 意思都相当于 to love. 常用词amiable(亲切的，和蔼可亲的）， amateur（业余爱好者，业余艺术家）</p>
<p><strong>amiable ['eimjәbl]</strong> 【am = to love； –i-; –able = capable of 可…的 ==&gt; “capable of being loved 可爱的&quot; &#8212;&gt; a. 可爱的， 和蔼的】 an amiable old lady 可爱的老太太</p>
<p><strong>amiableness</strong>【amiable –ness】n. 仁慈；厚道</p>
<p><b></b></p>
<p><b>amateur</b> ['æmәtә(:), 'æmәtjuә] </p>
<p>【amat = to love 爱好； –eur(-er) n.=person 人 ==&gt; “person who does something for loving it (rather than for money) 只因为爱好从事某项活动 –》 person who practises an art, sport, or science for his own pleasure(艺术， 体育， 科学) 业余爱好者， 还可以引申为‘外行’】/ a radio amateur 业余无线电爱好者</p>
<p><b>amateurism</b> ['am·a·teur·ism || 'æmətərɪzm] n.&#160; 业余性; 非职业的作为</p>
<p>&#160;</p>
<p><b>amateurish</b> [am·a·teur·ish || ‚æmə'tɜːrɪʃ] adj.&#160; 外行的, 业余的; 笨拙的, 不熟练的</p>
<p>【amateur n. 业余爱好者； –ish a.= like… 像…的 == “like an amateur (rather than a professinal hand” 像搞业余的，不像内行的 –》a. unskillful 不老练的，外行的】</p>
<p>&#160;</p>
<p>am/amat的同族词</p>
<p><b>amicable</b> ['æmikәbl] adj.友善的, 和平的 </p>
<p>【amic（来自am的同根拉丁名字amicus） =&#160; person one loves or friend; –able a.=able to be能当…的， ‘able to be one’s friend, 能做朋友的’&#8212;》 a. 友好的，和睦的，无敌意的】</p>
<p>amicable relations</p>
<p><b>amicability </b>n.&#160; 友善; 亲善; 和睦 –ability 是-able的对应名词后缀</p>
<p>&#160;</p>
<p><strong>amour 【</strong>am = to love; our n. = the state or result of 行为的状态或结果<strong>】</strong>&#160; “loveing or the result of loving” love affair especially discreditable one桃色事件</p>
<p>/ əˈmuə(r); əˋmʊr/ <i>n </i>(<i>joc or rhet </i>谑或修辞) (esp secret) love affair （尤指秘密的）恋情; 偷情: <i>Have you heard about his latest amour? </i>你听说他最近偷情的事了吗?</p>
<p><b>amorous</b> ['æmәrәs] adj.多情的, 恋爱的, 表示爱情的 【根】am＝to love（爱）</p>
<p>【amo(u)r; –ous】 adj. 爱的，多情的</p>
<p><b>enamour</b> [i'næmә] vt. 迷住, 使迷恋</p>
<p>【en- = to make or cause to be使；amour = love 恋爱，爱情 =》“to make love to or cause to be in love 向..求爱，使恋爱 –》 imflame with love charm， 使清新，使迷恋】</p>
<p>【根】en-=in,into,on,at,near 从“在中间”之意演变成“使进入某种状态～，使成为～”等，把表示to make之意的名词、形容词变为及物动词 变化型 em-</p>
<p>例： her beauty enamoured the prince.</p>
<p><b>enamoured</b></p>
<p>(<i>US </i><b>enamored</b>) / ɪˈnæməd; ɪnˋæmɚd/ <i>adj </i>[pred 作表语] <b>~ of/with sth </b>(<i>fml or joc </i>文或谑) fond of or delighted by sth 喜欢某事物; 倾心於某事物: <i>enamoured of the sound of one&#8217;s own voice </i>陶醉於自己的嗓音 * <i>I&#8217;m not too enamoured with the idea of spending a whole day with him. </i>我可不太喜欢一整天都跟他在一起.</p>
<p>&#160;</p>
<p><b>amatory</b></p>
<p>/ ˈæmətərɪ; US -tɔːrɪ; ˋæməˏtɔrɪ/ <i>adj </i>(<i>fml or joc </i>文或谑) relating to or inspired by sexual love 性爱的; 爱情的; 色情的: <i>amatory literature, adventures</i> 艳情文学﹑ 艳遇.</p>
<p>【amat = to love爱 –ory a.= related to 与…有关的—&gt; related to loving; expressing love恋爱的， 爱慕的 / an amatory poem</p>
]]></content:encoded>
			<wfw:commentRss>http://hawkor.com/english/%e6%af%8f%e6%97%a5%e5%ad%97%e6%a0%b9%ef%bc%9aam-amat-l-to-love-%e7%88%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

