﻿<?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++博客-Just for i0'</title><link>http://www.cppblog.com/forLinda/</link><description>Love i0</description><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 21:36:55 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 21:36:55 GMT</pubDate><ttl>60</ttl><item><title>网易暨Topcoder之有道难题，解题和一点体会</title><link>http://www.cppblog.com/forLinda/archive/2009/06/24/88441.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Wed, 24 Jun 2009 09:21:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2009/06/24/88441.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/88441.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2009/06/24/88441.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/88441.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/88441.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网易有道难题第二轮挑战赛的题目。练练就知道。&nbsp;&nbsp;<a href='http://www.cppblog.com/forLinda/archive/2009/06/24/88441.html'>阅读全文</a><img src ="http://www.cppblog.com/forLinda/aggbug/88441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2009-06-24 17:21 <a href="http://www.cppblog.com/forLinda/archive/2009/06/24/88441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>爱是无私</title><link>http://www.cppblog.com/forLinda/archive/2006/04/28/6430.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Fri, 28 Apr 2006 10:07:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/04/28/6430.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/6430.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/04/28/6430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/6430.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/6430.html</trackback:ping><description><![CDATA[
		<p>放弃很爱你的人，不痛苦  </p>
		<p>
				<br />放弃你很爱的人，痛苦 <br /> </p>
		<p>爱上不爱你的人，更痛苦 </p>
		<p>
				<br />那时我 年轻，现在依然.....</p>
		<p> </p>
		<p>无爱，放弃很爱你的人  让她幸福</p>
		<p>
				<br />去爱，你爱的人  永远不会有痛苦</p>
		<p>         <br />如果痛苦 你是否确定那是真正的爱<br /><br />即使有，那也是美好的记忆!</p>
		<p>
				<br />如果爱别人，也需要别人来爱？</p>
		<p>那爱是何物</p>
		<p>
				<br />..........</p>
		<p>
				<br />爱是无私，所以不需要交换，永远不需要！<br /></p>
<img src ="http://www.cppblog.com/forLinda/aggbug/6430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-04-28 18:07 <a href="http://www.cppblog.com/forLinda/archive/2006/04/28/6430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从int 到string的几种方法</title><link>http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Fri, 17 Mar 2006 11:38:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/4298.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/4298.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/4298.html</trackback:ping><description><![CDATA[
		<p align="left">1.   int sprintf( char *buffer, const char *format [, argument] ... );<br />      &lt;stdio.h&gt;<br />例如：<br />      int ss;<br />      char temp[64];<br />      string str;<br />      ss = 1000;<br />    <font color="#ff3300">  sprintf(temp, "%d", ss);</font><br />      string s(temp);<br />       //调用string的方法<br />      cout&lt;&lt;s.c_str()&lt;&lt;endl;//1000<br />      cout&lt;&lt;s.size()&lt;&lt;endl;  //长度为4<br /><br />2.char *_itoa( int value, char *string, int radix );<br />        &lt;stdlib.h&gt;<br />  例如：<br />      char buffer[20];<br />      int  i = 3445;   <br />    <font color="#ff3399"> _itoa( i, buffer, 10 );<br /></font>      string s(buffer);<br /><br /><br />3. stringstream( )<br />     &lt;sstream.h&gt;<br /> 例如：<br />       int hello=4;<br />       <font color="#ff00cc">stringstream ss;<br />       ss&lt;&lt;hello;<br /></font>       string   s=ss.str();<br />     //调用string的方法<br />       cout&lt;&lt;s.c_str()&lt;&lt;endl;<br /><br /><br />如果库中其他的函数可以作到，不妨共享<br />      <br /><br />  <br />      </p>
<img src ="http://www.cppblog.com/forLinda/aggbug/4298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-03-17 19:38 <a href="http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序人生：25岁以上程序员单身手册 </title><link>http://www.cppblog.com/forLinda/archive/2006/03/07/3878.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Tue, 07 Mar 2006 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/03/07/3878.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/3878.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/03/07/3878.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/3878.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/3878.html</trackback:ping><description><![CDATA[<P style="TEXT-INDENT: 2em"><STRONG>1． 生活</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：每天用两分钟刷牙洗脸，冲出房间的时候扣子还没扣上</P>
<P style="TEXT-INDENT: 2em">right：提前一个小时起床，花五分钟刷牙，洗个澡，挑件干净点的衣服去上班 </P>
<P style="TEXT-INDENT: 2em">wrong：每天早晨经过超市买一包烟，我不吃早餐已经很多年</P>
<P style="TEXT-INDENT: 2em">right：经过超市买一听牛奶，其他的根据个人兴趣了</P>
<P style="TEXT-INDENT: 2em">wrong：我吃麦当劳肚子起泡泡了，或者，昨天那箱方便面吃完了。</P>
<P style="TEXT-INDENT: 2em">right：租一个有厨房房子，去超市买现成的菜调剂一下，心情好添一只啤酒，有人来添一双碗筷</P>
<P style="TEXT-INDENT: 2em">wrong：我从来不收拾房间，有必要么，一个人住。</P>
<P style="TEXT-INDENT: 2em">right：一周拖一次地，洗次衣服，收拾房子，环境影响心情；买束花，使用一下芳香剂都不错</P>
<P style="TEXT-INDENT: 2em">wrong：从来没有早于1点睡觉，睡不着，我的眼袋赶上熊猫了。</P>
<P style="TEXT-INDENT: 2em">right：洗个热水澡，就会很困很困了</P>
<P style="TEXT-INDENT: 2em"><STRONG>2． 朋友</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：朋友就是在一起吃吃喝喝一起玩闹，除了同事没有什么朋友。</P>
<P style="TEXT-INDENT: 2em">right：在周围有比自己年长的朋友，他可以指导你的人生；在网上有技术上的朋友，可以在工作上给你帮助；有那么一两个损友，干点一个人不敢干的事；有些玩友，空闲的时候不至于无聊；知心朋友么，不好找，QQ上泡七八个MM勉勉强强了。</P>
<P style="TEXT-INDENT: 2em"><STRONG>3． 运动</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong:：一天工作累死了，动也不想动</P>
<P style="TEXT-INDENT: 2em">right：运动是最好的放松</P>
<P style="TEXT-INDENT: 2em">wrong：我想动也动不了了，你瞧我的身材</P>
<P style="TEXT-INDENT: 2em">right：不要不好意思到健身房show你的身材，这样永远没有抬起头那一天</P>
<P style="TEXT-INDENT: 2em">wrong：我对运动从不感兴趣</P>
<P style="TEXT-INDENT: 2em">right：其实运动最容易上瘾了</P>
<P style="TEXT-INDENT: 2em"><STRONG>4． 休闲</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：我最大的爱好是当蜘蛛，蹲在网上一动不动。</P>
<P style="TEXT-INDENT: 2em">right：你该出去走走了，或者找本书读读。</P>
<P style="TEXT-INDENT: 2em">wrong：我是路盲，离开住的地方1000m就得打的回去了，并且对住的地方一无所知</P>
<P style="TEXT-INDENT: 2em">right：知道附近去那里看电影，去那里喝茶，去那里有特色的美味</P>
<P style="TEXT-INDENT: 2em">wrong：我不抽烟，也不喝酒</P>
<P style="TEXT-INDENT: 2em">right：你是不是程序员？抽烟可以找到灵感，喝酒可以找到朋友。</P>
<P style="TEXT-INDENT: 2em"><STRONG>5． 爱情</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：我相信一见钟情，相信缘分天定，不需要进一步的表示了。</P>
<P style="TEXT-INDENT: 2em">right：算了吧，还是拿出诚意和恒心去打动对方吧，要做吃苦在先享受在后的打算。</P>
<P style="TEXT-INDENT: 2em">wrong：我懒得找女朋友，现在的女子太那个；不要跟我提这个，我头好痛敖~</P>
<P style="TEXT-INDENT: 2em">right：吃不到葡萄就说葡萄酸，更不能逃避内心的欲望</P>
<P style="TEXT-INDENT: 2em">wrong：我也想过，总是碰不上合适的</P>
<P style="TEXT-INDENT: 2em">right：你肯定有看着远去背影直咽口水的，下一次鼓足勇气说小姐可以认识你呢，只要不收到一个耳光就可以继续尝试下去。（当然你首先要帅到她不忍心下手才行）</P>
<P style="TEXT-INDENT: 2em">wrong：我想过了，我想从网络开始，或者看看HGame，Hardcore DVD是怎么样的</P>
<P style="TEXT-INDENT: 2em">right：~!@#$%^&amp;*……还是从现实开始吧。</P>
<P style="TEXT-INDENT: 2em">对了，我相信程序员不是太花心，就是有，也没有时间太花心。</P>
<P style="TEXT-INDENT: 2em"><STRONG>6． 工作</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：程序员是青春饭，我什么时候才可以从后山跳出去</P>
<P style="TEXT-INDENT: 2em">right：既入此门，当不做他念，要出去也要打了木人阵从正门出去</P>
<P style="TEXT-INDENT: 2em">wrong：工作时间长，加班也没有加班费，环境也老差，午餐的水果都是烂的</P>
<P style="TEXT-INDENT: 2em">right：我们度过了这个难关，产品上市一切就会好起来。适当的发泄一下，但是不要让谈话在抱怨中结束。</P>
<P style="TEXT-INDENT: 2em">wrong：不用想了，我打赌这样做肯定无法实现！ </P>
<P style="TEXT-INDENT: 2em">right：这中间还有疑点，我先做一个评估，再给您一个详细的文档。说服你的上级，要有凭有据。</P>
<P style="TEXT-INDENT: 2em">wrong：这个问题啊，哎呀，还是交给我来吧。 </P>
<P style="TEXT-INDENT: 2em">right：这里有一些文档你看一下，有问题可以来问我。让新手迅速成长起来成为你的左膀右臂。</P>
<P style="TEXT-INDENT: 2em">wrong：啊，是我忘记checkin了，等一下，现在好了</P>
<P style="TEXT-INDENT: 2em">right：不要在细节的地方重复性的范小错误，虽然不是问题，可会降低自己的威信。</P>
<P style="TEXT-INDENT: 2em">wrong：这个绝对不是我的问题</P>
<P style="TEXT-INDENT: 2em">right：永远不要这么自信</P>
<P style="TEXT-INDENT: 2em">wrong：我的这个模块写得太精湛了，延误了一点时间而已</P>
<P style="TEXT-INDENT: 2em">right：我们成功地抵达了这个里程碑，一切以项目为重。</P>
<P style="TEXT-INDENT: 2em"><STRONG>7． 事业</STRONG></P>
<P style="TEXT-INDENT: 2em">wrong：天生我才必有用，安得倚天抽宝剑，直挂云帆济沧海，打倒微软，把他踩在脚下，使劲踩，我踩，踩，踩……</P>
<P style="TEXT-INDENT: 2em">right：都一把年纪了，还做梦呢</P>
<P style="TEXT-INDENT: 2em">wrong：我已经烂掉了</P>
<P style="TEXT-INDENT: 2em">right：我不能像他一样烂掉</P>
<P style="TEXT-INDENT: 2em">wrong：一次付出不会成功，但是不懈的付出一定会成功</P>
<P style="TEXT-INDENT: 2em">right：你还经历的起多少失败？</P>
<P style="TEXT-INDENT: 2em">你说我虚伪,我是虚伪,虚伪要是有一颗仁慈的心,就不是虚伪,是虚心.</P><img src ="http://www.cppblog.com/forLinda/aggbug/3878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-03-07 22:55 <a href="http://www.cppblog.com/forLinda/archive/2006/03/07/3878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我们为什么坠入爱河</title><link>http://www.cppblog.com/forLinda/archive/2006/03/06/3811.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Mon, 06 Mar 2006 04:27:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/03/06/3811.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/3811.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/03/06/3811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/3811.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/3811.html</trackback:ping><description><![CDATA[<DIV class=entry-body>
<P>当我们“坠”下爱河的时候，什么东西崩溃了？</P>
<P>是隔离的感觉，是将我们与别人隔开的屏障与高墙。在这个屏障坍塌之际，有一种兴奋欢愉的感觉，象一个自由落体带着一种失去控制的不可言状的狂喜。然而，这是一种升华，一种愉悦与解放的体验。</P>
<P>纯粹肉体的意义上，在性高潮的瞬间，确有一种冲破隔离屏障的感觉，使人身不由己地陷入一种无法控制的亢奋之中，从某种意义上，这是一种解放的体验，是对隔离屏障的突破，从中我们体验爱情。但是它不会永恒，转瞬既逝。</P>
<P>.........</P>
<P>活着就是为了寻求幸福和欢愉，最大的欢愉就是彻底地沉浸于那种难以言状的同一感和感知的随心所欲的自由状态中，而且这种感知能够超越一切的隔绝。我们所寻求的，存在于性爱与情爱，友谊与婚姻之中的，正是这种 联合所带来的细腻的愉悦感。</P>
<P></P>
<P>认为金钱，成功与声望可以引导我们更加接近突破隔离的屏障。然而，这取决与声望如何影响我们的自我感知，最终反而可能增强隔离的高墙。金钱，成功与声望可能保证我们的生存，让我们与其他人的心灵自由的形成一个不可分割的整体；或者可能在我们与其他人之间创造出更多的屏障，从而带来傲慢，占有欲，虚荣心，恐惧与危机感，优越感与尊卑差别及互相攀比等。</P>
<P>............</P>
<P>..............</P>
<P>ps： 本文来自《人性的思考》【印度】阿肖可.高勒克力&nbsp;&nbsp;&nbsp; 经过本人整理</P>
<P></P></DIV><img src ="http://www.cppblog.com/forLinda/aggbug/3811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-03-06 12:27 <a href="http://www.cppblog.com/forLinda/archive/2006/03/06/3811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vector::capacity</title><link>http://www.cppblog.com/forLinda/archive/2006/03/06/3810.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Mon, 06 Mar 2006 04:25:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/03/06/3810.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/3810.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/03/06/3810.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/3810.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/3810.html</trackback:ping><description><![CDATA[<DIV class=entry-body>
<P>vector::capacity<BR>: Returns the number of elements that the vector could&nbsp;<BR>&nbsp;&nbsp;&nbsp; contain without allocating more&nbsp;&nbsp; storage.<BR><BR>vector的capacity()调用返回vector中最大能够存储的元素个数.<BR>当有新的元素插入的时候（vector::push_back）需要扩充容量,于是capacity的值就变化。而不同的组织可以制订自己的变化规则，即对capacity不同的实现。<BR><BR>注：reserve会使容器在必要的时候增长，以便容纳指定数目的元素。<BR>vector&lt;int&gt; v; <BR>v.reserve(10);<BR>cout &lt;&lt; v.capacity() &lt;&lt; endl; //10<BR><BR>那么在linux：（kernel2.6.9）gcc下：<BR>#include&lt;iostream&gt;<BR>#include&lt;vector&gt;<BR>using namespace std;<BR>int main()<BR>{<BR>vector &lt;int&gt; v;<BR>for(int i=0;i&lt;40;i )<BR>{ <BR>v.push_back(i); <BR>cout&lt;&lt; v.capacity()&lt;&lt;endl;<BR><BR>}<BR>return 0;<BR>}<BR><BR>将输出： 1 2 4 8 16 .... 2^n<BR><BR>上述程序在windows vc6.0下：<BR>将输出： 1 2 3 4 6 6 9 9 9 .... <BR>显然不是2^n的关系，如果有那是什么呢？<BR>x＋ [x/2];</P>
<P></P>
<P>注意：如果先分配capacity＝10，那么插入一个元素后就变为：10＋5＝15(gcc)<BR><BR>比较起来就是： 前者： x ＋x ; 后者： x ＋[x/2];&nbsp;<BR><BR>&nbsp;例如：<BR>同样的cpu和内存下测试i=(0, 4000)： <BR>linux gcc：30000ms<BR>window vc6.0：4515ms<BR>注意：在打印的情况下，打印也会占用很多时间<BR>上述的试验数字具有不可再现性。<BR><BR><BR>而我们要做的应该是充分认识这一点，并且有效的利用这个特性。<BR>比如：<BR>在插入大量小对象时&nbsp; 是gcc比较好，还是vc的比较好？<BR>大对象的时候呢 ？<BR><BR>关于效率的讨论将是下一步的事<BR>&nbsp;<BR><BR>&nbsp;<BR></P></DIV><BR><img src ="http://www.cppblog.com/forLinda/aggbug/3810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-03-06 12:25 <a href="http://www.cppblog.com/forLinda/archive/2006/03/06/3810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给c++程序员的一份礼物——常用工具集 [转]</title><link>http://www.cppblog.com/forLinda/archive/2006/03/06/3809.html</link><dc:creator>for_I0</dc:creator><author>for_I0</author><pubDate>Mon, 06 Mar 2006 04:24:00 GMT</pubDate><guid>http://www.cppblog.com/forLinda/archive/2006/03/06/3809.html</guid><wfw:comment>http://www.cppblog.com/forLinda/comments/3809.html</wfw:comment><comments>http://www.cppblog.com/forLinda/archive/2006/03/06/3809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/forLinda/comments/commentRss/3809.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/forLinda/services/trackbacks/3809.html</trackback:ping><description><![CDATA[<H2>给c++程序员的一份礼物——常用工具集&nbsp;</H2>
<DIV class=post>
<DIV class=storycontent>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width="100%">
<DIV class=diaryTitleBg>给c++程序员的一份礼物——常用工具集&nbsp; </DIV></TD></TR>
<TR>
<TD vAlign=top align=left width="100%">
<DIV class=diarybody>
<DIV><FONT color=#0000ff>原文出处：http://morningspace.51.net/</FONT><A href="http://blog.csdn.net/freexploit/archive/2005/01/26/269527.aspx"><FONT color=#333399></FONT></A></DIV>
<DIV>
<P><FONT color=#0000ff>&nbsp;</FONT>　所谓"工欲善其事，必先利其器"，从程序员的角度来讲，好工具的使用总会给人带来事半功倍的效果。面对众多工具/软件，我们应该如何取舍呢。前不久，笔者在csdn的c++论坛发了一篇<A href="http://expert.csdn.net/Expert/TopicView1.asp?id=1839543"><FONT color=#333399>贴文</FONT></A>，以期能征求大家的广泛意见，得到了不错的反响。本文在对该贴进行整理的基础上，又做了一些补充。在这里要特别感谢网友：DanielWYO(爱上小白)，redleaves(无心红叶)。 </P></DIV><BR>
<P>有以下几点需要声明： </P>
<OL>
<LI>本文主要是针对c++程序员的，但一些综合类的通用型工具/软件，作为c++程序员而言也是不可或缺的，因此也被列入其中。同样，这些工具/软件，对其他语言的程序员，也是适用的。 　　　　 
<LI>对所列各类工具/软件的评价，其依据是多数网友的观点汇总，并结合了笔者自己的个人观点，供参考，如有不实之处，欢迎指正。 　　　　 
<LI>对所列各类工具/软件的排名不分先后，其中既有Open source软件，也有商业产品。对于前者，我将提供下载地址，对于后者，我将尽量提供相关信息的参考网址。 　　　　 
<LI>这份清单并非static的，所列工具/软件也远非保罗万象，如果你有好的建议和想法，也可以提供。如有必要，我会对该清单作定期更新^_^ </LI></OL>
<P></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">开发环境</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">Turbo c</TD>
<TD>DOS时代c语言开发的经典工具，目前适合两类人使用：c语言beginner（尤其是学生一族），具有怀旧情节的专业人士：）</TD></TR>
<TR>
<TD>Visual C++ 6.0/7.0</TD>
<TD>稳定而强大的IDE开发环境，具有丰富的调试功能，定制宏的功能也是其一大特色。Microsoft的经典之作，功能强大自不必言说。附带的一些工具也很不错，比如：Spy++。但编译器较之同类，支持c++标准的程度不够好，尤其6.0及以前的版本。</TD></TR>
<TR>
<TD>BCB</TD>
<TD>Borland的C++ Builder是可以与VC匹敌的另一个功能强大的IDE，速度和稳定性稍逊，但对c++标准支持的程度较好。</TD></TR>
<TR>
<TD>Cygwin</TD>
<TD>Windows平台下的C++编译器，基于gcc，又完全兼容Window特有的东西，比如对winsock的支持。从http://www.cygwin.com可以找到有关Cygwin的详细信息。</TD></TR>
<TR>
<TD>Dev-c++</TD>
<TD>Windows平台下，一个类似VC、BCB的c++ IDE开发环境，属于共享软件。界面亲切优雅，size也不大，其4.9.x版有中文语言支持，无需汉化。编译器基于gcc，完全支持STL。但是对于规模较大的软件项目，恐怕难以胜任。可以从:http://www.bloodshed.net/dev/devcpp.html找到有关Dev-c++的有关信息。</TD></TR>
<TR>
<TD>Source Insight</TD>
<TD>有着和Dev c++一样漂亮的界面，提供代码的编辑和察看功能，具有丰富的语法加亮功能，可以像VC一样自动弹出成员函数的提示，并具有快速方便的函数跳转功能（但是跳转速度似乎有点慢）。只是默认设置不适合时，需要仔细的调整和修改。无法查找经typedef之后的名字。</TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">辅助</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">Visual Assist</TD>
<TD>VC IDE环境下的辅助编程工具，能识别各种关键字、函数、成员变量，自动给出tip，并自动更正大小写错误，标示拼写错误等。是VC开发的良好伴侣。 </TD></TR>
<TR>
<TD>Understand for C++</TD>
<TD>一款c/c++IDE编程的辅助工具，支持反向工程，代码导向和一些统计功能，从http://www.scitools.com可以找到有关Understand for C++的详细信息。 </TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">程序编辑器</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">EditPlus</TD>
<TD>一款很不错的文本编辑软件，功能强大却又十分轻巧。支持不同语言的语法加亮，还有Project组织功能，具有丰富的自定义功能。通过设置User Tool，可以和其他语言编译器结合，形成一个简单的IDE。</TD></TR>
<TR>
<TD>Ultra Edit</TD>
<TD>功能和EditPlus相当，通过脚本文件提供的配置功能可以定制编辑环境，但自6.0版以后一直没多大变化，就编程而言，自定义设置没有EditPlus方便。 </TD></TR>
<TR>
<TD>EMACS</TD>
<TD>公认的世界上功能最多，最复杂的文本编辑器，其实也可以当作程序员用的编辑器。 </TD></TR>
<TR>
<TD>Visual Slick Edit</TD>
<TD>一个功能强大的程序员用编辑器。最值得一提的是其定制功能，很好用，可以和EMACS相比。自带了一套PCODE解释器，用c的语法，还可以挂接动态库。配合mingw一起使用很方便。从http://www.slickedit.com可以找到有关SlickEdit的详细信息。</TD></TR>
<TR>
<TD>IQEdit</TD>
<TD>全功能的程序员用编辑器，界面很漂亮，从http://pwksoftware.com可以找到有关IQEdit的详细信息。</TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">UML/建模</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">Rational Rose</TD>
<TD>强大的建模工具，早已"家喻户晓"，功过自然不必多加评说了。从http://www.rationalsoftware.com.cn可以找到有关Rational Rose的详细信息。</TD></TR>
<TR>
<TD>Visual Modeler</TD>
<TD>MS Visual Studio 6.0所附的小工具。属于Rational和MicroSoft合作的战略产品，是Rose的简化版。</TD></TR>
<TR>
<TD>Visio</TD>
<TD>Microsoft的建模工具，感觉更人性化一些，但功能没有Rose多、强、专，支持正向的代码生成，以及对代码的反向工程。</TD></TR>
<TR>
<TD>Together</TD>
<TD>另一款功能强大的建模工具，用java编写而成，口碑不错，不过速度稍稍慢了一些。从http://www.togethersoft.com可以找到有关Togather的详细信息，另外，以下网址提供了一个有关Together的教程：<BR>http://www.cc.puv.fi/~tka/kurssit/Tietojarjestelmien_suunnittelu/together/TCCGuide6</TD></TR>
<TR>
<TD>Visual UML</TD>
<TD>支持多种语言类型，比如：VC、VB、DELPHI、CORBA IDL等，可以直接从UML设计图生成代码，简单易用，完全适合Personal use，界面也很清爽。从http://www.visualObject.com可以找到有关Visual UML的详细信息。</TD></TR>
<TR>
<TD>SmartDraw</TD>
<TD>通用图表制作软件，可以用来制作组织机构图、流程图、统计图表等。随带有图库，基本满足制作各类图表的需要。从http://www.smartdraw.com可以找到有关SmartDraw的详细信息。</TD></TR>
<TR>
<TD>PlayCase</TD>
<TD>国产面向对象的建模软件，兼容UML和IDEF，轻量级软件，只是界面看起来有点简朴，乃是高展先生用Delphi完成的。</TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">版本控制</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">ClearCase</TD>
<TD>Rational的版本控制管理软件，功能强大，可以控制多种类型的文档，甚至包括Word、Excel、PowerPoint文档。但使用复杂，不易上手，且不是免费软件。</TD></TR>
<TR>
<TD>CVS</TD>
<TD>为基于Web的分布式协同开发提供了版本控制管理手段，且是免费软件，可以通过脚本定制功能。但在权限控制方面功能相对较弱。</TD></TR>
<TR>
<TD>VSS</TD>
<TD>微软的版本控制管理工具，功能相对简单，适合于小型团队开发，将其整合到微软的其他开发工具中，使用起来十分方便。</TD></TR>
<TR>
<TD>SourceOffSite</TD>
<TD>微软为开发人员提供的远程访问VSS数据库的工具，使数据库得以远程更新，以支持远程办公。</TD></TR></TBODY></TABLE><BR>其他的版本管理工具还包括：PVCS、VCS、RCS等。 </P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">XML</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">expat</TD>
<TD>用于读取和处理XML文档的c函数库，最初是James Clark的个人作品，简单轻巧，且速度快。但支持的编码方式有限，最遗憾的是不支持中文。从http://expat.sourceforge.net可以找到有关expat的详细信息。</TD></TR>
<TR>
<TD>xml4c</TD>
<TD>IBM的XML Parser，用c++语言写就，功能超级强大。号称支持多达100种字符编码，能够支持中文，适合于大规模的xml应用。若只是很小范围的应用，则非最佳选择，毕竟，你需要"背负"约12M左右的dll的沉重负担。从http://www.alphaworks.ibm.com/tech/xml4c可以找到有关xml4c的详细信息。 </TD></TR>
<TR>
<TD>Xerces c++</TD>
<TD>Apache的XML项目，同样是c++实现，来源于IBM的xml4c，因此编程接口也是和xml4c一致的。但是目前只支持少数的字符编码，如ASCII，UTF-8，UTF-16等，不能处理包含中文字符的XML文档。从http://xml.apache.org/xerces-c可以找到有关Xerces c++的详细信息。</TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">测试</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">CppUnit</TD>
<TD>一个c++的单元测试框架，可以通过派生测试类的方式，定制具体的测试方案。xUnit家族的一员，从JUnit移植而来，JUnit是Java语言的单元测试框架。从http://cppuint.sourceforge.net可以找到有关CppUint的详细信息。</TD></TR>
<TR>
<TD>Rational ROBOT</TD>
<TD>Rational的自动化测试工具，通过编写脚本的方式提供自动化测试特性。其GUI方式的脚本录制功能，有助于对GUI软件进行功能测试；其VU方式的脚本录制功能，有助于测试某些软件的数据通讯功能。</TD></TR>
<TR>
<TD>Rational Purify</TD>
<TD>同样是Rational的自动化测试工具，不需要被测程序的源代码，可以用来检查内存访问错误、Windows API调用错误等，以完成软件的可靠性测试，属于白盒测试。</TD></TR></TBODY></TABLE><BR>其他的Rational测试工具还包括：TestFactory、PureCoverage、TestManager等。 </P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">日志</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">log4cpp</TD>
<TD>一个用于日志记录的c++函数库，可以将内容以定制的方式记录到不同的目的地，比如：文件、控制台、syslog等，同时还可以通过控制记录级别来屏蔽掉某些无关记录。从http://log4cpp.sourceforge.net可以找到有关log4cpp的详细信息。</TD></TR></TBODY></TABLE></P>
<P style="PADDING-RIGHT: 5pt; PADDING-LEFT: 5pt; PADDING-BOTTOM: 5pt; FONT: bold 14px/13pt courier new, courier, mono; WIDTH: 100%; COLOR: #003399; PADDING-TOP: 5pt; WHITE-SPACE: pre; BACKGROUND-COLOR: #f5f0f0">注释</P>
<P>
<TABLE border=1>
<TBODY>
<TR>
<TD width="15%">Doc++</TD>
<TD>注释文档生成工具，根据源程序中的文档注释，可以输出TeX和HTML格式的文档。除了支持c/c++语言外，还支持IDL和java。仅提供命令行使用方式。从http://docpp.sourceforge.net可以找到有关Doc++的详细信息。</TD></TR>
<TR>
<TD>Doxygen</TD>
<TD>注释文档生成工具，较之Doc++功能更为齐全，可以生成包括HTML、PDF、RTF在内的多种格式的文档，并有GUI界面，除了支持c/c++语言外，还支持IDL、java、PHP、c#等。从<A href="http://www.stack.nl/~dimitri/doxygen"><FONT color=#333399>http://www.stack.nl/~dimitri/doxygen</FONT></A>可以找到有关Doxygen的详细信息。</TD></TR></TBODY></TABLE></P></DIV></TD></TR></TBODY></TABLE><BR></DIV></DIV><img src ="http://www.cppblog.com/forLinda/aggbug/3809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/forLinda/" target="_blank">for_I0</a> 2006-03-06 12:24 <a href="http://www.cppblog.com/forLinda/archive/2006/03/06/3809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>