﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-尚观天下 以术为尊</title><link>http://www.cppblog.com/Royal/</link><description>御道</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:07:15 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:07:15 GMT</pubDate><ttl>60</ttl><item><title>[讨论]某软件公司的面试题</title><link>http://www.cppblog.com/Royal/archive/2009/12/28/104314.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Mon, 28 Dec 2009 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/28/104314.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104314.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/28/104314.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104314.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104314.html</trackback:ping><description><![CDATA[<p>利用哈夫曼算法对任意输入的字符串中各个字符进行编码，如输入aaarradgrt, 则输出：a，r，d，g，t的哈夫曼码值。<br><br></p>
<p>把题目看了一遍， 第一题多线程 ，我没有接触过， 然后看第二题&nbsp; 第二题难度不大，然后直接看第三题 ， 咦！第三题和第二题有很大的关联！！</p>
<p>于是我就直接奔向第三题：</p>
<p>利用哈夫曼算法对任意输入的字符串中各个字符进行编码，如输入aaarradgrt, 则输出：a，r，d，g，t的哈夫曼码值。</p>
<p>正好学过哈夫曼树的算法； 一阵编译调试&nbsp; 捣鼓出来了，而且输入 aaarradgrt, 正好也等于 a，r，d，g，t&nbsp; 感觉似对非对</p>
<p>&nbsp;<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_70_598_Open_Image onclick="this.style.display='none'; Codehighlighter1_70_598_Open_Text.style.display='none'; Codehighlighter1_70_598_Closed_Image.style.display='inline'; Codehighlighter1_70_598_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_70_598_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_598_Closed_Text.style.display='none'; Codehighlighter1_70_598_Open_Image.style.display='inline'; Codehighlighter1_70_598_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_70_598_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_70_598_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;temp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;number;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;count</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;jj</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Please&nbsp;Enter&nbsp;value:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;cin</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">str;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The&nbsp;value&nbsp;lenth&nbsp;:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">str.length()</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">str.length();&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_278_468_Open_Image onclick="this.style.display='none'; Codehighlighter1_278_468_Open_Text.style.display='none'; Codehighlighter1_278_468_Closed_Image.style.display='inline'; Codehighlighter1_278_468_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_278_468_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_278_468_Closed_Text.style.display='none'; Codehighlighter1_278_468_Open_Image.style.display='inline'; Codehighlighter1_278_468_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_278_468_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_278_468_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jj</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">str.length();&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_343_427_Open_Image onclick="this.style.display='none'; Codehighlighter1_343_427_Open_Text.style.display='none'; Codehighlighter1_343_427_Closed_Image.style.display='inline'; Codehighlighter1_343_427_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_343_427_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_343_427_Closed_Text.style.display='none'; Codehighlighter1_343_427_Open_Image.style.display='inline'; Codehighlighter1_343_427_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_343_427_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_343_427_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(str[i]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">str[j])<br><img id=Codehighlighter1_373_422_Open_Image onclick="this.style.display='none'; Codehighlighter1_373_422_Open_Text.style.display='none'; Codehighlighter1_373_422_Closed_Image.style.display='inline'; Codehighlighter1_373_422_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_373_422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_373_422_Closed_Text.style.display='none'; Codehighlighter1_373_422_Open_Image.style.display='inline'; Codehighlighter1_373_422_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_373_422_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_373_422_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jj</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(count==true)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[i]='*';</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">str.length();&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_505_593_Open_Image onclick="this.style.display='none'; Codehighlighter1_505_593_Open_Text.style.display='none'; Codehighlighter1_505_593_Closed_Image.style.display='inline'; Codehighlighter1_505_593_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_505_593_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_505_593_Closed_Text.style.display='none'; Codehighlighter1_505_593_Open_Image.style.display='inline'; Codehighlighter1_505_593_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_505_593_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_505_593_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(str[i]</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_542_589_Open_Image onclick="this.style.display='none'; Codehighlighter1_542_589_Open_Text.style.display='none'; Codehighlighter1_542_589_Closed_Image.style.display='inline'; Codehighlighter1_542_589_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_542_589_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_542_589_Closed_Text.style.display='none'; Codehighlighter1_542_589_Open_Image.style.display='inline'; Codehighlighter1_542_589_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_542_589_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_542_589_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The&nbsp;Fist&nbsp;value:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">str[i]</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>&nbsp;</p>
<p>为什么说他似对非对呢？</p>
<p>因为我把中间 哈夫曼编码这段注释结果也正好成立， 然而我也不知道这一题做的对不对。 还望众通道们帮我验证下</p>
<img src ="http://www.cppblog.com/Royal/aggbug/104314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-28 22:00 <a href="http://www.cppblog.com/Royal/archive/2009/12/28/104314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Jetty 7 Continuation 总结 </title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104107.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104107.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104107.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104107.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104107.html</trackback:ping><description><![CDATA[<p>　　阅读: 2 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target=_blank>Fervour</a> 发表于 2009-12-19 17:59 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627856.html" target=_blank>原文链接</a></p>
最近开始研究jetty 7。已经出到稳定版了。我相信大多JETTY的爱好者已经看过了。 <br>这里呢。对jetty 7的continuation总结一下。 <br><br>为了做一个server long push的WEB应用。我选择了jetty。对于Jetty，我只能说是一个新手，在网上搜资料的时候，发现相关资料少个可怜，中文的资料都是一个抄一个，或者就是翻译的。对于jetty我走了弯路。迫使自己看是看jetty的源文件。 <br><br>大家肯定都知道jetty的continuation是建立的NIO技术的基础上。使WEB 服务器对大量的HTTP申请做阻塞不必开启过多的线程。避免了浪费。而jetty是将封装好的servlet加入一个等待队列。之后做轮询。哪个满足条件。就调用用户的方法去操作response。 <br><br>刚开始作为一个第一次用jetty的人，我把suspend/complete和suspend/resunme产生了一个错误的理解。我以为这个方法只是阻塞申请。于是我建立了一个方法。里面做了一个循环去判断某个值，如果存在就反馈并complete。而最后发现jetty自带了遍历的功能。不用你去写循环。 <br>正确的写法如下： <br>
<pre class=java name="code">//判断applition中是否有msg有的话反馈，没有的话就阻塞。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//得到applition对象
ServletContext applition = getServletConfig().getServletContext();
//获取continuation
Continuation continuation = ContinuationSupport.getContinuation(request);
//设定超时时间、可以不设置。默认为30秒
continuation.setTimeout(0);
//阻塞
continuation.suspend();
//如果applition中有msg这个字符。开放阻塞
if(applition.getAttribute("msg").toString() != null){
continuation.complete();
response.getServletResponse().getWriter().print(
applition.getAttribute("msg").toString()
);
}
}
</pre>
<br>其他你都不用管。服务器会做循环来调用你的serlvet。然后调用你的判断方法做处理。 <br>要注意的一点是： <br>我做了一个小小的测试。我挂起了20个长连接去判断自己需求的信息，但是呢。我第一步就给与第9个长连接做判断的对象赋值，按理论上来说，它应该立即反馈的。 <br>错！ <br>它不会反馈给你。因为服务器端对每个客户端挂起的长连接做了限制。代码如下： <br>
<pre class=java name="code">package org.eclipse.jetty.continuation;
import java.util.ArrayList;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletResponseWrapper;
class FauxContinuation
implements ContinuationFilter.FilteredContinuation
{
private static final ContinuationThrowable __exception = new ContinuationThrowable();
//这里就是限制你为什么不能一台机器申请挂起多个长连接的原因。
private static final int __HANDLING = 1;
private static final int __SUSPENDING = 2;
private static final int __RESUMING = 3;
private static final int __COMPLETING = 4;
private static final int __SUSPENDED = 5;
private static final int __UNSUSPENDING = 6;
private static final int __COMPLETE = 7;
private final ServletRequest _request;
private ServletResponse _response;
private int _state = 1;
private boolean _initial = true;
private boolean _resumed = false;
private boolean _timeout = false;
private boolean _responseWrapped = false;
private long _timeoutMs = 30000L;
private ArrayList&lt;ContinuationListener&gt; _listeners;
FauxContinuation(ServletRequest request)
{
this._request = request;
}
public void onComplete()
{
if (this._listeners != null)
for (ContinuationListener l : this._listeners)
l.onComplete(this);
}
public void onTimeout()
{
if (this._listeners != null)
for (ContinuationListener l : this._listeners)
l.onTimeout(this);
}
public boolean isResponseWrapped()
{
return this._responseWrapped;
}
public boolean isInitial()
{
synchronized (this)
{
return this._initial;
}
}
public boolean isResumed()
{
synchronized (this)
{
return this._resumed;
}
}
public boolean isSuspended()
{
synchronized (this)
{
switch (this._state)
{
case 1:
return false;
case 2:
case 3:
case 4:
case 5:
return true;
case 6:
}
return false;
}
}
public boolean isExpired()
{
synchronized (this)
{
return this._timeout;
}
}
public void setTimeout(long timeoutMs)
{
this._timeoutMs = timeoutMs;
}
public void suspend(ServletResponse response)
{
this._response = response;
this._responseWrapped = response instanceof ServletResponseWrapper;
suspend();
}
public void suspend()
{
synchronized (this)
{
switch (this._state)
{
case 1:
this._timeout = false;
this._resumed = false;
this._state = 2;
return;
case 2:
case 3:
return;
case 4:
case 5:
case 6:
throw new IllegalStateException(getStatusString());
}
throw new IllegalStateException("" + this._state);
}
}
public void resume()
{
synchronized (this)
{
switch (this._state)
{
case 1:
this._resumed = true;
return;
case 2:
this._resumed = true;
this._state = 3;
return;
case 3:
case 4:
return;
case 5:
fauxResume();
this._resumed = true;
this._state = 6;
break;
case 6:
this._resumed = true;
return;
default:
throw new IllegalStateException(getStatusString());
}
}
}
public void complete()
{
synchronized (this)
{
switch (this._state)
{
case 1:
throw new IllegalStateException(getStatusString());
case 2:
this._state = 4;
break;
case 3:
break;
case 4:
return;
case 5:
this._state = 4;
fauxResume();
break;
case 6:
return;
default:
throw new IllegalStateException(getStatusString());
}
}
}
public boolean enter(ServletResponse response)
{
this._response = response;
return true;
}
public ServletResponse getServletResponse()
{
return this._response;
}
void handling()
{
synchronized (this)
{
this._responseWrapped = false;
switch (this._state)
{
case 1:
throw new IllegalStateException(getStatusString());
case 2:
case 3:
throw new IllegalStateException(getStatusString());
case 4:
return;
case 5:
fauxResume();
case 6:
this._state = 1;
return;
}
throw new IllegalStateException("" + this._state);
}
}
public boolean exit()
{
synchronized (this)
{
switch (this._state)
{
case 1:
this._state = 7;
onComplete();
return true;
case 2:
this._initial = false;
this._state = 5;
fauxSuspend();
if ((this._state == 5) || (this._state == 4))
{
onComplete();
return true;
}
this._initial = false;
this._state = 1;
return false;
case 3:
this._initial = false;
this._state = 1;
return false;
case 4:
this._initial = false;
this._state = 7;
onComplete();
return true;
case 5:
case 6:
}
throw new IllegalStateException(getStatusString());
}
}
protected void expire()
{
synchronized (this)
{
this._timeout = true;
}
onTimeout();
synchronized (this)
{
switch (this._state)
{
case 1:
return;
case 2:
this._timeout = true;
this._state = 3;
fauxResume();
return;
case 3:
return;
case 4:
return;
case 5:
this._timeout = true;
this._state = 6;
break;
case 6:
this._timeout = true;
return;
default:
throw new IllegalStateException(getStatusString());
}
}
}
private void fauxSuspend()
{
long expire_at = System.currentTimeMillis() + this._timeoutMs;
long wait = this._timeoutMs;
while ((this._timeoutMs &gt; 0L) &amp;&amp; (wait &gt; 0L))
{
try
{
super.wait(wait);
}
catch (InterruptedException e)
{
break label51:
}
wait = expire_at - System.currentTimeMillis();
}
if ((this._timeoutMs &gt; 0L) &amp;&amp; (wait &lt;= 0L))
label51: expire();
}
private void fauxResume()
{
this._timeoutMs = 0L;
super.notifyAll();
}
public String toString()
{
return getStatusString();
}
String getStatusString()
{
synchronized (this)
{
return ((this._state == 4) ? "COMPLETING" : (this._state == 6) ? "UNSUSPENDING" : (this._state == 3) ? "RESUMING" : (this._state == 5) ? "SUSPENDED" : (this._state == 2) ? "SUSPENDING" : (this._state == 1) ? "HANDLING" : new StringBuilder().append("???").append(this._state).toString()) + ((this._initial) ? ",initial" : "") + ((this._resumed) ? ",resumed" : "") + ((this._timeout) ? ",timeout" : "");
}
}
public void addContinuationListener(ContinuationListener listener)
{
if (this._listeners == null)
this._listeners = new ArrayList();
this._listeners.add(listener);
}
public Object getAttribute(String name)
{
return this._request.getAttribute(name);
}
public void removeAttribute(String name)
{
this._request.removeAttribute(name);
}
public void setAttribute(String name, Object attribute)
{
this._request.setAttribute(name, attribute);
}
public void undispatch()
{
if (isSuspended())
{
if (ContinuationFilter.__debug)
throw new ContinuationThrowable();
throw __exception;
}
throw new IllegalStateException("!suspended");
}
}
</pre>
<br>所以遇到这个问题的朋友不必担心。我使用多台机器测试过。服务器的servlet轮询队列是很长的。但对于单独用户来说只能接受6个suspend.在发送长连接挂起请求。他们加入到你所处的用户等待列表。当你挂起的6个连接中有一个被释放了。你的第7个连接将被挂起。 <br><br>之前用了webbench做压测。 <br><br>不管你怎么测非阻塞技术的长连接。你都会被jetty拒之门外。。。 <br><br>就是因为这个做了限制。这样的限制大大降低对服务器的压力。 
<img src ="http://www.cppblog.com/Royal/aggbug/104107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]状态与信息</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104106.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104106.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104106.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104106.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104106.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104106.html</trackback:ping><description><![CDATA[<p>　　阅读: 0 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627847.html" target="_blank">原文链接</a></p>在计算机科学和自动机理论领域里，状态（state）的概念是指程序或机器的一个唯一的信息格局（unique configuration），换句说，机器可以有多个互不相同的格局，每一个格局叫状态。<img src ="http://blog.csdn.net/keminlau/aggbug/5038836.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627847.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627847.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53818/" target="_blank">调查：Win7企业用户不满意率仅为7%</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627847.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627847.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Ad Hoc网络</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104105.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104105.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104105.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104105.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104105.html</trackback:ping><description><![CDATA[<p>　　阅读: 0 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627845.html" target="_blank">原文链接</a></p>一、AdHoc网络的概念  Ad Hoc网络是一种没有有线基础设施支持的移动网络，网络中的节点均由移动主机构成。Ad Hoc网络最初应用于军事领域，它的研究起源于战场环境下分组无线网数据通信项目，该项目由ＤＡＲＰＡ资助，其后，又在1983年和1994年进行了抗毁可适应网络ＳＵＲＡＮ（Ｓｕｒｖｉｖａｂｌｅ Ａｄａｐｔｉｖｅ Ｎｅｔｗｏｒｋ）和全球移动信息系统ＧｌｏＭｏ（Ｇｌｏｂａｌ Ｉｎｆｏｒｍａｔｉｏｎ Ｓｙｓｔｅｍ）项目的研究。由于无线通信和终端技术的不断发展，Ad Hoc网络在民用环境下也得到了发展，如需要在没有有线基础设施的地区进行临时通信时，可以很方便地通过搭建Ad Hoc网络实现。    在Ad Hoc网络中，当两个移动主机（如图1中的主机Ａ和Ｂ）在彼此的通信覆盖范围内时，它们可以直接通信。但是由于移动主机的通信覆盖范围有限，如果两个相距较远的主机（如图1中的主机Ａ和Ｃ）要进行通信，则需要通过它们之间的移动主机Ｂ的转发才能实现。因此在Ad Hoc网络中，主机同时还是路由器，担负着寻找路由和转发报文的工作。在Ad Hoc网络中，每个主机的通信范围有限，因此路由一般都由多跳组成，<img src ="http://blog.csdn.net/xiaojianpitt/aggbug/5038951.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627845.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627845.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53819/" target="_blank">PHPWIND承认被支付宝收购：发力本地门户网站</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627845.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627845.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]如何用Live Writer发表Csdn博客文章</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104104.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104104.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104104.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104104.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104104.html</trackback:ping><description><![CDATA[<p>　　阅读: 1 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627844.html" target="_blank">原文链接</a></p>Microsoft发布的Windows Live Writer是一款管理个人博客的客户端工具。Windows Live Writer不光支持Windows Live Spaces的用户使用，同时支持现在网络上的其他流行的一系列的Blog内容管理系统。  用Windows Live Writer写CSDN博客的步骤如下：  1，安装Windows Live Writer后，会有一个添加账户的向导。在第一步“选择博客类型”时，选择“其它日志服务”。    2.在第二步中输入你的CSDN博客首页地址，比如：http://blog.csdn.net/xiaojianpitt,还有CSDN的登录用户名和密码，勾选记着密码选项。     3，接下来的一步中选择提供程序，在此选择你的blog 提供商的类型及它的接口地址。Live Writer支持多达目前流利的7种blog接口类型。 CSDN blog使用的 Metaweblog API 做为接口提供，所以这里我选：Metaweblog API 这种方式。 输入blog 的接口地址。  CSDN blog service的地址就为http://blo<img src ="http://blog.csdn.net/xiaojianpitt/aggbug/5039011.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627844.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627844.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53820/" target="_blank">消息称土豆网获第五轮4000万美元融资</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627844.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627844.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]三种交换技术的简介</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104103.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104103.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104103.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104103.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104103.html</trackback:ping><description><![CDATA[<p>　　阅读: 1 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627843.html" target="_blank">原文链接</a></p>1．电路交换技术   网络交换技术共经历了四个发展阶段，电路交换技术、报文交换技术、分组交换技术和ATM技术。公众电话网（PSTN网）和移动网（包括GSM网和CDMA网）采用的都是电路交换技术，它的基本特点是采用面向连接的方式，在双方进行通信之前，需要为通信双方分配一条具有固定带宽的通信电路，通信双方在通信过程中将一直占用所分配的资源，直到通信结束，并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽，并且实时性强，时延小，交换设备成本较低，但同时带来的缺点是网络的带宽利用率不高，一旦电路被建立不管通信双方是否处于通话状态，分配的电路都一直被占用。  2．报文交换技术   报文交换技术和分组交换技术类似，也是采用存储转发机制，但报文交换是以报文作为传送单元，由于报文长度差异很大，长报文可能导致很大的时延，并且对每个节点来说缓冲区的分配也比较困难，为了满足各种长度报文的需要并且达到高效的目的，节点需要分配不同大小的缓冲区，否则就有可能造成数据传送的失败。在实际应用中报文交换主要用于传输报文较短、实时性要求较低的通信业务，如公用电报<img src ="http://blog.csdn.net/xiaojianpitt/aggbug/5039020.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627843.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627843.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53821/" target="_blank">智能手机大趋势：Symbian后继有人</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627843.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627843.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]IPython设置颜色</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104102.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104102.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104102.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104102.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104102.html</trackback:ping><description><![CDATA[<p>　　阅读: 3 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627842.html" target="_blank">原文链接</a></p><br />1. 下载pyreadline, Windows上的命令行彩色显示需要这个模块。<br /><br />2. 进入ipython以后，键入“%color_info”查看当前颜色输出是否打开。若没有打开，则“%color_info ON”<br /><br />3 .输入”%colors Linux”或LightBG（适合浅色屏幕背景）<img src ="http://blog.csdn.net/lwj1396/aggbug/5039017.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627842.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627842.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53822/" target="_blank">消息称百度有意进军大型网游运营</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627842.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627842.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]人类无法抗拒的10种心理</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104101.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104101.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104101.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104101.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104101.html</trackback:ping><description><![CDATA[<p>　　阅读: 4 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 18:33 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627841.html" target="_blank">原文链接</a></p><br />1、鸟笼逻辑                                        　　 <br /><br />挂一个漂亮的鸟笼在房间里最显眼的地方，过不了几天，主人一定会做出下面两个选择之一：把鸟笼扔掉，或者买一只鸟回来放在鸟笼里。这就是鸟笼逻辑。过程很简单，设想你是这房间的主人，只要有人走进房间，看到鸟笼，就会忍不住问你：“鸟呢？是不是死了？”当你回答：“我从来都没有养过鸟。”人们会问： “那么，你要一个鸟笼干什么？”最后你不得不在两个选择中二选一，因为这比无休止的解释要容易得多。鸟笼逻辑的原因很简单：人们绝大部分的时候是采取惯性思维。所以可见在生活和工作中培养逻辑思维是多么重要。                      <br /><br />2、破窗效应                                　　 <br /><br />心理学的研究上有个现象叫做“破窗效应”，就是说，一个房子如果窗户破了，没有人去修补，隔不久，其它的窗户也会莫名其妙的被人打破；一面墙，如果出现一些涂鸦没有清洗掉，很快的，墙上就布满了乱七八糟，不堪入目的东西。一个<img src ="http://blog.csdn.net/cuizm/aggbug/5039071.aspx" width = "1" height = "1" /><img src="http://www.cnblogs.com/fervour/aggbug/1627841.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627841.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53823/" target="_blank">2009年中国服务器操作系统市场分析</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627841.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627841.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Test</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104100.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104100.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104100.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104100.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104100.html</trackback:ping><description><![CDATA[<p>　　阅读: 22 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 19:07 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627887.html" target="_blank">原文链接</a></p><p>Part ⅠListening Comprehension<br />Section<br />1． C2． A3． A4． D5． B<br />Section<br />6． A7． B8． D9． C10． B<br />Section<br />11． after this semester12． Irish13． 3 years14． a welcome party15． felt bored<br />Part ⅡStructure<br />Section<br />16． B17． B18． D19． A20． D21．&nbsp; A22．&nbsp; B23．&nbsp; C24．&nbsp; A25．&nbsp; D<br />Section<br />26． responsible27． explanation28． less29． favorable30． would try31． Impressed32． dangerous33． was shaking/shook34． application35． helping<br />Part ⅢReading Comprehension<br />Task 1<br />36． A37． A38． D39． C40． B<br />Task 2<br />41． D42． B43． D44． A45． B<br />Task 3<br />46． 1,64247． leisure48． locations49． spending limit50． travel plans<br />Task 4<br />51． M， R52． Q， E53． O， G54． L， B55． H， N<br />Task 5<br />56． A senior secretary57． Shorthand and typewriting58． luncheon vouchers59． salary required<br />60． an application letter<br />Part ⅣTranslation&mdash;English into Chinese<br />61.&nbsp; C&mdash;A&mdash;B&mdash;D62.&nbsp; D&mdash;C&mdash;A&mdash;B63.&nbsp; D&mdash;B&mdash;C&mdash;A64.&nbsp; A&mdash;D&mdash;C&mdash;B<br />65．&nbsp; 参考译文：<br />本公司从我国大使馆获悉，贵公司欲进口中国丝绸产品。<br />本公司是中国一家老字号的丝绸产品出口商，在国内外均享有盛誉。本公司产品畅销海内外，以其上乘质量和精湛工艺，受到顾客的高度赞扬。<br />随函附上我公司所有产品的目录及价目表。<br />速复为盼。/期待贵公司尽早回复。<br />Part ⅤWriting<br />Notice<br />We are to hold a meeting of study monitors of every class in Room 205 of the Classroom Building at 2∶00 p.m. next Monday, Nov.30. The topic of the meeting is &ldquo;How to improve our spoken English&rdquo;. You are requested to give your ideas on how to practice spoken English and tell what kind of problems your classmates are facing. You can speak of your own experience in learning oral English, or what you can do to help your classmates make progress. Your valuable opinions and suggestions are welcome. Please get ready, and come on time. No one is to be absent.<br />Student Union<br />Nov.25,2009<br />我们是下午2:00举行的中每个房间的教学楼205班同学在下周一监察会议上，11月30日。本次会议的主题是&ldquo;如何提高我们的英语口语&rdquo;。请你就如何练习英语口语，告诉什么问题，你的同学正面临一种你的想法。你可以说你在学习英语，或者你可以做什么来帮助你的同学取得进步的经验。您的宝贵意见和建议欢迎。请准备好，并及时到。没有人是不存在。学生会Nov.25，2009<br />&lt;PIXTEL_MMI_EBOOK_2005&gt;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/PIXTEL_MMI_EBOOK_2005&gt;</p><img src="http://www.cnblogs.com/fervour/aggbug/1627887.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627887.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53824/" target="_blank">百事放弃赞助全美最大赛事 转投社交网站</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627887.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627887.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]C语言中sizeof与strlen区别</title><link>http://www.cppblog.com/Royal/archive/2009/12/25/104099.html</link><dc:creator>Royal</dc:creator><author>Royal</author><pubDate>Fri, 25 Dec 2009 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/Royal/archive/2009/12/25/104099.html</guid><wfw:comment>http://www.cppblog.com/Royal/comments/104099.html</wfw:comment><comments>http://www.cppblog.com/Royal/archive/2009/12/25/104099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Royal/comments/commentRss/104099.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Royal/services/trackbacks/104099.html</trackback:ping><description><![CDATA[<p>　　阅读: 6 评论: 0 作者: <a href="http://www.cnblogs.com/fervour/" target="_blank">Fervour</a> 发表于 2009-12-19 19:08 <a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627889.html" target="_blank">原文链接</a></p><p>v</p>
<p><br />一.本质区别</p>
<p>sizeof和strlen有本质上的区别。sizeof是C语言的一种单目运算符，如++、--等，并不是函数，sizeof的优先级为2级，比/、% 等3级运算符优先级高，sizeof以字节的形式给出操作数的存储空间的大小。而strlen是一个函数，是由C语言的标准库提供的。strlen计算的 是字符串的长度。</p>
<p>二.使用区别</p>
<p>1.sizeof</p>
<p>sizeof的操作数可以是数据类型、函数、变量，表达式使用方式为：</p>
<p>（1）数据类型</p>
<p>sizeof （type）</p>
<p>例如我们要计算一个int型数据的存储空间可以用： sizeof（int）。需要注意的是sizeof的操作数是数据类型时要加括号。其数值大小为该数据类型所占的存储空间的字节数。</p>
<p>（2）变量</p>
<p>sizeof（变量名）</p>
<p>如果定义 int a ，可以使用sizeof （a）计算a变量占据的存储空间。具体大小与a的类型有关。</p>
<p>注意：由于sizeof是操作符sizeof a或sizeof （a）都可以。（可以不使用括号），如果操作数是数组名则给出数组所占用内存的字节数。如果数组名做函数的参数传递时退化为指针。</p>
<p>（3）表达式</p>
<p>sizeof （表达式）</p>
<p>sizeof可以对一个表达式求值，编译器根据表达式的最终结果类型来确定大小，一般不会对表达式进行计算。例如：sizeof（1+1.5）</p>
<p>（4）函数调用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>sizeof（函数名（））</p>
<p><br />sizeof也可以对一个函数调用求值，其结果是函数返回类型的大小，函数并不会被调用，举例来说定义如下函数：</p>
<p>int myprint（）<br />{<br />&nbsp;&nbsp; printf（&ldquo;hello\n&rdquo;）；<br />&nbsp;&nbsp; return 0;<br />}</p>
<p>int main()<br />{<br />printf(&ldquo;%d&rdquo;,sizeof(mypaint()));<br />return 0;<br />}<br />结果只打印函数返回类型的sizeof值，并没有打印hello说明函数myprint并没有调用。</p>
<p>C99标准规定，函数、不能确定类型的表达式以及位域（bit-field）成员不能被计算sizeof值，即下面这些写法都是错误的：<br />如：sizeof（myprint）（注意sizeof（myprint（）是可以的））<br />或者sizeof一个void返回类型的函数如：<br />void foo () { }<br />sizeof( foo () );<br />&nbsp;&nbsp;&nbsp;&nbsp; 以及位域：<br />struct S<br />{<br />unsigned int f1 : 1;<br />unsigned int f2 : 5;<br />unsigned int f3 : 12;<br />};<br />sizeof( S.f1 );</p>
<p>2.strlen</p>
<p>strlen的应用则不像sizeof那么广泛，strlen的参数必须是char *的指针，如果用strlen计算数据类型strlen（int）这种用法是错误的。strlen的计算必须依赖字符序列中的&rsquo;\0&rsquo;字符，strlen 就是通过判断是否遇到&rsquo;\0&rsquo;来判断字符序列是否结束的。<br />它的计算原理类似于下面的两条语句<br />while（*p！=&rsquo;\0&rsquo;）<br />&nbsp;&nbsp;&nbsp; length++</p>
<p>strlen的用法：分为以下几种参数</p>
<p>（1）char * 指针<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />strlen（指针名）</p>
<p>如果参数是指针则计算该指针指向字符序列的长度。（以&rsquo;\0&rsquo;作为判断标志）例如：</p>
<p>定义char *p=&ldquo;hello world&rdquo;；strlen（p）=11，而sizeof （p）=4。可以看到strlen计算的是指针指向的字符串的长度而sizeof计算的是指针本身所占用的内存空间的大小。</p>
<p>（2）数组</p>
<p>strlen（数组名）</p>
<p>如果参数是数组的话，实际传递的是一个指针，strlen会按照上面处理指针的模式处理该数组。</p>
<p>我们可以看下面的例子：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />char a[]=&rdquo;hh&rdquo;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strlen(a);</p>
<p>很显然strlen的结果是2。但是如果数组是这样赋值的呢？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />char a[]={&lsquo;h&rsquo;，&rsquo;h&rsquo;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strlen(a);</p>
<p>那么现在strlen（a）的结果又是多少呢？这个数就不一定了，原因是strlen会去计算a地址开始的字符串的长度，由于前一种赋值方式会将hh以字 符串的形式赋值给数组会将字符串结束符&rsquo;\0&rsquo;一同赋值，这时strlen就会检查到结束符停止计算，而第二种复值方式是以单个字符的形式赋值没有结束 符&rsquo;\0&rsquo;,这时我们用sizeof得到的结果是正常的，而用strlen由于找不到结束符，会继续的计算直到找到结束符为止。所以这个数是不确定。</p><img src="http://www.cnblogs.com/fervour/aggbug/1627889.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/fervour/archive/2009/12/19/1627889.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/53825/" target="_blank">山寨XP也疯狂 雨林木风Ylmf OS多图赏</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p><br>文章来源:<a href='http://www.cnblogs.com/fervour/archive/2009/12/19/1627889.html'>http://www.cnblogs.com/fervour/archive/2009/12/19/1627889.html</a><img src ="http://www.cppblog.com/Royal/aggbug/104099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Royal/" target="_blank">Royal</a> 2009-12-25 23:44 <a href="http://www.cppblog.com/Royal/archive/2009/12/25/104099.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>