﻿<?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++博客-技术笔记——Beyond Programming</title><link>http://www.cppblog.com/archiveman/</link><description>欢迎喜欢技术的朋友来转转</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 09:39:25 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 09:39:25 GMT</pubDate><ttl>60</ttl><item><title>程序员面试题精选100题－栈的push、pop序列</title><link>http://www.cppblog.com/archiveman/archive/2010/09/01/125508.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Wed, 01 Sep 2010 03:30:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/09/01/125508.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/125508.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/09/01/125508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/125508.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/125508.html</trackback:ping><description><![CDATA[昨天看程序员面试精选100题，看到一个栈的push，pop序列问题。<br>题目：输入两个整数序列。其中一个序列表示栈的push顺序，判断另一个序列有没有可能是对应的pop顺序。为了简单起见，我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5，那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列：push 1，push 2，push 3，push 4，pop，push 5，pop，pop，pop，pop，这样得到的pop序列就是4、5、3、2、1。但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。<br>一开始还真不知道怎么下手，看了分析才知道大概方法。然后再看参考代码,感觉还是有些复杂。自己想了个稍微简单的方法,pop队列还可能是push队列的子集：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stack</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></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></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">/*</span><span style="color: #008000;">!<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #008000;">\brief&nbsp;This&nbsp;algorithm&nbsp;demostrates&nbsp;how&nbsp;to&nbsp;judge&nbsp;whether&nbsp;or&nbsp;not&nbsp;a&nbsp;given&nbsp;seqence&nbsp;is<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #008000;">possibly&nbsp;a&nbsp;popup&nbsp;sequence&nbsp;providing&nbsp;the&nbsp;pushing&nbsp;sequence.<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #008000;"></span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;IsPopSequence(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;ppush,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;pushm,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;ppop,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;popm)<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;stack</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;help_stack;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;popm)<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">help_stack.empty()&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;help_stack.top()&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;ppop[j])<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;help_stack.pop();<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;pushm)<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;help_stack.push(ppush[i</span><span style="color: #000000;">++</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;popm;<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">argv,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">env[])<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">int&nbsp;pushseq[]&nbsp;=&nbsp;{1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5};<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">int&nbsp;pushseqlen&nbsp;=&nbsp;sizeof(pushseq)/sizeof(pushseq[0]);</span><span style="color: #008000;"><br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">/int&nbsp;popseq[]&nbsp;=&nbsp;{4,&nbsp;5,&nbsp;3,&nbsp;2,&nbsp;1};</span><span style="color: #808080;"><br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #808080;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">int&nbsp;popseq[]&nbsp;=&nbsp;{4,&nbsp;3,&nbsp;5,&nbsp;1,&nbsp;2};<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">int&nbsp;popseqlen&nbsp;=&nbsp;sizeof(popseq)/sizeof(popseq[0]);</span><span style="color: #008000;"><br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;"><br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;pushseq[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">};<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;popseq[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{</span><span style="color: #000000;">4</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">};<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;pushseqlen&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(pushseq)</span><span style="color: #000000;">/</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(pushseq[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;popseqlen&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(popseq)</span><span style="color: #000000;">/</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(popseq[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">boolalpha</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">IsPopSequence(pushseq,&nbsp;pushseqlen,&nbsp;popseq,&nbsp;popseqlen)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">}</span></div>
<br>
<br><img src ="http://www.cppblog.com/archiveman/aggbug/125508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-09-01 11:30 <a href="http://www.cppblog.com/archiveman/archive/2010/09/01/125508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>链表排序之冒泡、插入、选择</title><link>http://www.cppblog.com/archiveman/archive/2010/08/20/124089.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 20 Aug 2010 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/08/20/124089.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/124089.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/08/20/124089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/124089.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/124089.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;#include&nbsp;&lt;stdio.h&gt;&nbsp;&nbsp;2&nbsp;#include&nbsp;&lt;stdlib.h&gt;&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/08/20/124089.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/124089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-08-20 14:24 <a href="http://www.cppblog.com/archiveman/archive/2010/08/20/124089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GNU C/C＋＋简易编译支持脚本</title><link>http://www.cppblog.com/archiveman/archive/2010/06/20/118291.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Sun, 20 Jun 2010 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/06/20/118291.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/118291.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/06/20/118291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/118291.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/118291.html</trackback:ping><description><![CDATA[看了Unix原理和应用，也是为了平时写些小程序，小例子方便，特别制作了一个易用的辅助脚本，脚本文件compile.sh如下：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#</span><span style="color: #000000;">!/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">sh<br>#comc.sh:&nbsp;script&nbsp;that&nbsp;helps&nbsp;programming&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;C</span><span style="color: #000000;">/</span><span style="color: #000000;">C</span><span style="color: #000000;">++</span><span style="color: #000000;"><br>#author:Don<br><br>sources</span><span style="color: #000000;">=</span><span style="color: #000000;">`ls&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">t&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.c&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.cpp&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.cxx&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.h&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">`<br>lastsource</span><span style="color: #000000;">=</span><span style="color: #000000;">`ls&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">t&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.c&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.cpp&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.cxx&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">.h&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;head&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">`<br><br>command</span><span style="color: #000000;">=</span><span style="color: #000000;">$</span><span style="color: #000000;">0</span><span style="color: #000000;"><br>executable</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">${PWD##*/}</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">case</span><span style="color: #000000;">&nbsp;$command&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">r)&nbsp;.</span><span style="color: #000000;">/</span><span style="color: #000000;">"</span><span style="color: #000000;">${executable}</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #000000;">tty&nbsp;</span><span style="color: #000000;">&gt;/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #000000;">tty&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;;;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">vc)&nbsp;vim&nbsp;$lastsource&nbsp;;;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">vac)&nbsp;vim&nbsp;$sources&nbsp;;;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">c)&nbsp;gcc&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">g&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">O0&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">o&nbsp;$executable&nbsp;$sources&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">gcc&nbsp;compiled&nbsp;successfully</span><span style="color: #000000;">"</span><span style="color: #000000;">;;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">cxx)&nbsp;g</span><span style="color: #000000;">++</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">g&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">O0&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">o&nbsp;$executable&nbsp;$sources&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">g++&nbsp;compiled&nbsp;successfully</span><span style="color: #000000;">"</span><span style="color: #000000;">;;<br>esac</span></div>
<br>放在任何目录下都可以：<br>然后添加连接到/usr/bin<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">ln&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">path</span><span style="color: #000000;">/</span><span style="color: #000000;">to</span><span style="color: #000000;">/</span><span style="color: #000000;">compile.sh&nbsp;&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">r<br>ln&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">path</span><span style="color: #000000;">/</span><span style="color: #000000;">to</span><span style="color: #000000;">/</span><span style="color: #000000;">compile.sh&nbsp;&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">vc<br>ln&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">path</span><span style="color: #000000;">/</span><span style="color: #000000;">to</span><span style="color: #000000;">/</span><span style="color: #000000;">compile.sh&nbsp;&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">vac<br>ln&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">path</span><span style="color: #000000;">/</span><span style="color: #000000;">to</span><span style="color: #000000;">/</span><span style="color: #000000;">compile.sh&nbsp;&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">c<br>ln&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">path</span><span style="color: #000000;">/</span><span style="color: #000000;">to</span><span style="color: #000000;">/</span><span style="color: #000000;">compile.sh&nbsp;&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">cxx</span></div>
<br>这样写小程序时就能用下面的步骤了:<br>1.创建程序目录并切换到目录下<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">mkdir&nbsp;example&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;cd&nbsp;$_</span></div>
2.创建源码文件<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">vim&nbsp;main.cpp</span></div>
3.编辑代码，保存<br>4.编译，如果是cpp代码则运行cxx，如果是c代码则运行c，生成的二进制可执行文件名称是程序坐在目录名称。<br>5.要重新编辑最后一个源文件则运行vc命令，要重新编辑所有源文件则运行vac命令。<br>6.编译成功后，要运行时运行r命令。<br><br>上面是我参考Unix原理于应用上的一个例子写出来的，最近在搞一些算法方面的题目，用这个脚本做些算法题和简单的测试程序还是比较实用的，当然如果要开发大型的软件，特别是要依赖标准库以外的东西，还是要靠Makefile.<br><img src ="http://www.cppblog.com/archiveman/aggbug/118291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-06-20 11:50 <a href="http://www.cppblog.com/archiveman/archive/2010/06/20/118291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lua小程序:十六进制字符串和二进制数据间的转换</title><link>http://www.cppblog.com/archiveman/archive/2010/03/30/111056.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Tue, 30 Mar 2010 14:20:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/30/111056.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/111056.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/30/111056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/111056.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/111056.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近玩了一下Lua，写了一个小程序，用于实践十六进制字符串和二进制数据之间的转换。<br>主要是因为最近有这方面的需要（在搞一些 RSA加密的东西）。&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/03/30/111056.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/111056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-30 22:20 <a href="http://www.cppblog.com/archiveman/archive/2010/03/30/111056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于管道——子进程调用命令行并返回执行结果的问题</title><link>http://www.cppblog.com/archiveman/archive/2010/03/05/108988.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 05 Mar 2010 11:22:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/05/108988.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/108988.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/05/108988.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/108988.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/108988.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一般情况下，用system或CreateProcess创建一个进程来执行一个命令行，并不关心它执行过程中的具体信息，有时甚至不在乎它何时结束，而在今天所碰到的问题中，却恰恰需要关注这两点。&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/03/05/108988.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/108988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-05 19:22 <a href="http://www.cppblog.com/archiveman/archive/2010/03/05/108988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在内存中解压-实用gzip解压类封装</title><link>http://www.cppblog.com/archiveman/archive/2010/03/05/108983.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 05 Mar 2010 09:51:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/05/108983.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/108983.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/05/108983.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/108983.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/108983.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: zlib的使用一般是以文件作为输入输出，而本类在zlib库基础上进行了一层封装，以便在内存中解压gzip数据，&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/03/05/108983.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/108983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-05 17:51 <a href="http://www.cppblog.com/archiveman/archive/2010/03/05/108983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Boost.Asio写的多线程TCP转发代理服务器</title><link>http://www.cppblog.com/archiveman/archive/2010/03/05/108971.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 05 Mar 2010 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/05/108971.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/108971.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/05/108971.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/108971.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/108971.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 应用场景是这样的：客户端和服务器在不同的网段内，它们之间不能直接通过TCP连接，但是有一台机器（暂时称为转发器）有双网卡，两块网卡分别在客户端和服务器端的网段内，这样转发器就能分别和客户端即服务器建立连接，并来回传输数据。设计思路是这样的：当客户端连接到转发器后，转发器马上建立一条到服务器之间的连接，与服务器端的连接建立后，就同时异步地从客户端和服务器端接收数据到两个缓冲区中，一旦...&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/03/05/108971.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/108971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-05 15:37 <a href="http://www.cppblog.com/archiveman/archive/2010/03/05/108971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VI/VIM使用小技巧</title><link>http://www.cppblog.com/archiveman/archive/2010/03/05/108970.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 05 Mar 2010 07:31:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/05/108970.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/108970.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/05/108970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/108970.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/108970.html</trackback:ping><description><![CDATA[1.打开文件时自动回到上次关闭时的位置
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->au&nbsp;BufReadPost&nbsp;*&nbsp;if&nbsp;line("'\"")&nbsp;&gt;&nbsp;0|if&nbsp;line("'\"")&nbsp;&lt;=&nbsp;line("$")|exe("norm&nbsp;'\"")|else|exe&nbsp;"norm&nbsp;$"|endif|endif</div>
注意单引号和双引号
<br>2.在普通模式下输入Enter键时也能换行（不用切换到插入模式然后换行然后又切回普通模式这么麻烦的） <br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->:nmap&nbsp;&lt;Enter&gt;&nbsp;i&lt;Enter&gt;&lt;ESC&gt;</div>
或
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->:nmap&nbsp;&lt;CR&gt;&nbsp;i&lt;Enter&gt;&lt;ESC&gt;</div>
或
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->:nmap&nbsp;&lt;Enter&gt;&nbsp;ylpr&lt;Enter&gt;</div>
<br><img src ="http://www.cppblog.com/archiveman/aggbug/108970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-05 15:31 <a href="http://www.cppblog.com/archiveman/archive/2010/03/05/108970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CPP博客开通</title><link>http://www.cppblog.com/archiveman/archive/2010/03/05/108968.html</link><dc:creator>David Fang</dc:creator><author>David Fang</author><pubDate>Fri, 05 Mar 2010 07:17:00 GMT</pubDate><guid>http://www.cppblog.com/archiveman/archive/2010/03/05/108968.html</guid><wfw:comment>http://www.cppblog.com/archiveman/comments/108968.html</wfw:comment><comments>http://www.cppblog.com/archiveman/archive/2010/03/05/108968.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/archiveman/comments/commentRss/108968.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/archiveman/services/trackbacks/108968.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 刚刚开通了CPP博客&nbsp;&nbsp;<a href='http://www.cppblog.com/archiveman/archive/2010/03/05/108968.html'>阅读全文</a><img src ="http://www.cppblog.com/archiveman/aggbug/108968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/archiveman/" target="_blank">David Fang</a> 2010-03-05 15:17 <a href="http://www.cppblog.com/archiveman/archive/2010/03/05/108968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>