﻿<?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++博客-gaimor-随笔分类-boost库</title><link>http://www.cppblog.com/gaimor/category/14475.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 29 Dec 2010 08:44:43 GMT</lastBuildDate><pubDate>Wed, 29 Dec 2010 08:44:43 GMT</pubDate><ttl>60</ttl><item><title>c++排列组合函数</title><link>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 29 Dec 2010 03:21:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/137652.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/137652.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/137652.html</trackback:ping><description><![CDATA[这段时间没咋编程序<br>就写个c++排列组合函数的使用吧 <br>以后使用得着的<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: #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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">assign.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">function.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></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: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost::assign;<br><br>inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;print_(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;t){cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">t</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">;}<br>inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;print(vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">&nbsp;vec)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;for_each(vec.begin(),vec.end(),print_);<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;全排列测试</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;test1()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;vec;<br>&nbsp;&nbsp;&nbsp;&nbsp;vec&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">4</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">,</span><span style="color: #000000;">6</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">8</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;sort(vec.begin(),vec.end());<br>&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;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(vec);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(next_permutation(vec.begin(),vec.end()));<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">i</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;组合测试</span><span style="color: #008000;"><br></span><span style="color: #000000;">size_t&nbsp;test2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;m,boost::function</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">(std::vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">&nbsp;vec)</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;fn)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">set</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;p.insert(p.end(),m,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;p.insert(p.end(),n</span><span style="color: #000000;">-</span><span style="color: #000000;">m,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br>&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;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;p.size();</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">set</span><span style="color: #000000;">.push_back(i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;vec;<br>&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;cnt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;">{<br>&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;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;p.size();</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(p[i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vec.push_back(</span><span style="color: #0000ff;">set</span><span style="color: #000000;">[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn(vec);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vec.clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(prev_permutation(&nbsp;p.begin(),&nbsp;p.end()));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cnt;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;test1();<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">test2(</span><span style="color: #000000;">20</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,print)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&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></div>
....................................................................................................................<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/137652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-12-29 11:21 <a href="http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost库使用注意事项(1)-从boost::tokenizer说起</title><link>http://www.cppblog.com/gaimor/archive/2010/11/19/134091.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 19 Nov 2010 07:56:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/11/19/134091.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/134091.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/11/19/134091.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/134091.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/134091.html</trackback:ping><description><![CDATA[boost是一个很好的库<br>但是并不是完美的<br>在使用的时候需要详细注意<br><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: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;tag;<br>&nbsp;&nbsp;&nbsp;&nbsp;boost::tokenizer</span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;">&nbsp;tok(std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">猫&nbsp;狗&nbsp;猪</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(boost::tokenizer</span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;">::iterator&nbsp;beg</span><span style="color: #000000;">=</span><span style="color: #000000;">tok.begin();beg</span><span style="color: #000000;">!=</span><span style="color: #000000;">tok.end();</span><span style="color: #000000;">++</span><span style="color: #000000;">beg)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">beg;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
&nbsp;&nbsp;&nbsp; std::cout&lt;&lt;tag&lt;&lt;std::endl;<br>大家说说结果吧<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/134091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-11-19 15:56 <a href="http://www.cppblog.com/gaimor/archive/2010/11/19/134091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之7.shared_ptr注意事项</title><link>http://www.cppblog.com/gaimor/archive/2010/10/27/131435.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 27 Oct 2010 01:57:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/10/27/131435.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/131435.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/10/27/131435.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/131435.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/131435.html</trackback:ping><description><![CDATA[盖莫引擎2.3.0算是做完了<br>不过这个做的很不尽人意(不过没关系咱慢慢做只要坚持O(&#8745;_&#8745;)O~)<br>一个问题就是引擎中的RefPtr设计有点问题<br>索性下个引擎版本就是用boost库吧<br>免得一些基础需要自己写<br><br>要使用boost库其中的智能指针必不可少<br>林林总总有好几个类型<br>不过常用得还是3个<br>scoped_ptr,<br>shared_ptr,<br>weak_ptr<br>这里先说shared_ptr<br>它还是引用计数类型的指针咯<br>貌似比较好用(但是根本还是在于使用的人)<br>为了正确使用它需要注意几个问题<br>1.多线程环境和循环引用<br>&nbsp;&nbsp;&nbsp; 应该配合weak_ptr<br>2.使用了shared_ptr就不应该使用其他内存管理机制<br>3.不要构造临时的shared_tr作为函数参数<br>4.其他...<br>&nbsp;&nbsp;&nbsp; <br><br><img src ="http://www.cppblog.com/gaimor/aggbug/131435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-10-27 09:57 <a href="http://www.cppblog.com/gaimor/archive/2010/10/27/131435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之6.boost的pool使用</title><link>http://www.cppblog.com/gaimor/archive/2010/08/15/123496.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sun, 15 Aug 2010 06:54:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/15/123496.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/123496.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/15/123496.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/123496.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/123496.html</trackback:ping><description><![CDATA[使用boost pool的简单例子如下:<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: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">pool</span><span style="color: #000000;">/</span><span style="color: #000000;">pool.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">pool</span><span style="color: #000000;">/</span><span style="color: #000000;">object_pool.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></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: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br><br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Object<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;Object(){cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">new&nbsp;obj</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">~</span><span style="color: #000000;">Object(){cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">delete&nbsp;obj</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>};&nbsp;<br><br></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[])<br>{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!每次分配的块的大小</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;blocksize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;boost::pool</span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;">&nbsp;alloc(blocksize);<br>&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;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;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;分配&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;ptr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">)alloc.malloc();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;*</span><span style="color: #000000;">ptr</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;释放&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alloc.free(ptr);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!object&nbsp;pool每次需要指定对象大小&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;boost::object_pool</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Object</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;pool_alloc;<br>&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;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;分配内存&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;mem&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;pool_alloc.malloc();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;构造</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">obj&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">(mem)Object();&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;析构&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pool_alloc.destroy(obj);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}<br></span></div>
//! ccsdu2004 <br><br><img src ="http://www.cppblog.com/gaimor/aggbug/123496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-15 14:54 <a href="http://www.cppblog.com/gaimor/archive/2010/08/15/123496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之5.function</title><link>http://www.cppblog.com/gaimor/archive/2010/08/14/123449.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sat, 14 Aug 2010 10:42:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/14/123449.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/123449.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/14/123449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/123449.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/123449.html</trackback:ping><description><![CDATA[本篇主要说明boost function的使用例子<br>设计头文件:<br>#include &lt;boost/function.hpp&gt;<br><br>基本的function对象例子<br>boost::function&lt;int(const char*,&amp;int)&gt; f;<br>代码该函子对应的函数其返回值为int类型,她有个2个参数分别为const char*和&amp;int类型<br>一个简单的例子如下所示:<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: #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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">function.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Sum(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;boost::function</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;sum_ptr;<br>&nbsp;&nbsp;&nbsp;&nbsp;sum_ptr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">Sum;<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">1+2=:?</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">sum_ptr(</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}</span></div>
如果对应的函数为类的成员函数则其使用例子可参考下面的说明:<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: #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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">function.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">functional</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Adder&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Adder(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;val):value(val){}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Add(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x){</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;x</span><span style="color: #000000;">*</span><span style="color: #000000;">value;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;value;<br>};<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;对应函数返回值int参数为int</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;boost::function</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">f;<br>&nbsp;&nbsp;&nbsp;&nbsp;Adder&nbsp;add(</span><span style="color: #000000;">7</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;绑定成员函数到boost::function&lt;<img src="http://www.cppblog.com/Images/dot.gif">&gt;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;std::bind1st(std::mem_fun(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">Adder::Add),</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">add);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">f(</span><span style="color: #000000;">5</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}</span></div>
对于仿函子则可以这样做:<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: #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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">function.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">functional</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Div&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">float</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">operator</span><span style="color: #000000;">()(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">((</span><span style="color: #0000ff;">float</span><span style="color: #000000;">)x)</span><span style="color: #000000;">/</span><span style="color: #000000;">y;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>};<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;2</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;boost::function</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">float</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;div;<br>&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Div();<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">div(</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}</span></div>
//! ccsdu2004 <br><br><img src ="http://www.cppblog.com/gaimor/aggbug/123449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-14 18:42 <a href="http://www.cppblog.com/gaimor/archive/2010/08/14/123449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之4.容器赋值操作</title><link>http://www.cppblog.com/gaimor/archive/2010/08/12/123143.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Thu, 12 Aug 2010 01:55:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/12/123143.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/123143.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/12/123143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/123143.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/123143.html</trackback:ping><description><![CDATA[这是使用Boost assigne小库的例子<br>包括map,vector,array的赋值操作<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: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">assign.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">array.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;<br><br></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: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost::assign;<br><br></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[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;vector赋值</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;v;<br>&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">4</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">,</span><span style="color: #000000;">6</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">8</span><span style="color: #000000;">,</span><span style="color: #000000;">9</span><span style="color: #000000;">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;copy(v.begin(),v.end(),ostream_iterator</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(cout,</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;map</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;map</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;m;<br>&nbsp;&nbsp;&nbsp;&nbsp;insert(m)(</span><span style="color: #000000;">"</span><span style="color: #000000;">foo</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">)(</span><span style="color: #000000;">"</span><span style="color: #000000;">bar</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">)(</span><span style="color: #000000;">"</span><span style="color: #000000;">ss</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">m.size()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;boost&nbsp;array.</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;array</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">float</span><span style="color: #000000;">,</span><span style="color: #000000;">6</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;Array;<br></span><span style="color: #0000ff;">#if</span><span style="color: #000000;">&nbsp;BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,&nbsp;==&nbsp;1)&nbsp;||&nbsp;BOOST_WORKAROUND(__BORLANDC__,&nbsp;BOOST_TESTED_AT(0x564))&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;Array&nbsp;a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;list_of(</span><span style="color: #000000;">1.1</span><span style="color: #000000;">)(</span><span style="color: #000000;">2.2</span><span style="color: #000000;">)(</span><span style="color: #000000;">3.3</span><span style="color: #000000;">)(</span><span style="color: #000000;">4.4</span><span style="color: #000000;">)(</span><span style="color: #000000;">5.5</span><span style="color: #000000;">)(</span><span style="color: #000000;">6.6</span><span style="color: #000000;">).to_array(a);<br></span><span style="color: #0000ff;">#else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;Array&nbsp;a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;list_of(</span><span style="color: #000000;">1.1</span><span style="color: #000000;">)(</span><span style="color: #000000;">2.2</span><span style="color: #000000;">)(</span><span style="color: #000000;">3.3</span><span style="color: #000000;">)(</span><span style="color: #000000;">4.4</span><span style="color: #000000;">)(</span><span style="color: #000000;">5.5</span><span style="color: #000000;">)(</span><span style="color: #000000;">6.6</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;copy(a.begin(),a.end(),ostream_iterator</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">float</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(cout,</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;boost::tuple</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;tuple;<br>&nbsp;&nbsp;&nbsp;&nbsp;std::vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tuple</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;vt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tuple_list_of(</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">foo</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">)(</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">bar</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">4</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::map</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;mp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;pair_list_of(</span><span style="color: #000000;">"</span><span style="color: #000000;">foo</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">)(</span><span style="color: #000000;">"</span><span style="color: #000000;">bar</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}<br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;ccsdu2004</span></div>
<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/123143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-12 09:55 <a href="http://www.cppblog.com/gaimor/archive/2010/08/12/123143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之3.文件系统</title><link>http://www.cppblog.com/gaimor/archive/2010/08/11/123076.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 11 Aug 2010 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/11/123076.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/123076.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/11/123076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/123076.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/123076.html</trackback:ping><description><![CDATA[这是简单的使用boost文件系统的例子<br>在devc++下编译需要2个库一个libboostsystem一个libboostfilesystem<br>基本的研发如下:<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: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">filesystem.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></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: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;fs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;boost::filesystem;<br><br></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[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">sizeof(intmax_t)is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(boost::intmax_t)</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>&nbsp;&nbsp;&nbsp;&nbsp;fs::path&nbsp;path(</span><span style="color: #000000;">"</span><span style="color: #000000;">main.cpp</span><span style="color: #000000;">"</span><span style="color: #000000;">,fs::native);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">fs::exists(path))<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">fs::is_regular(path))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">size&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">fs::file_size(path)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">字节</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;fs::path&nbsp;full_path(fs::initial_path</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">fs::path</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">());<br>&nbsp;&nbsp;&nbsp;&nbsp;full_path&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;fs::system_complete(fs::path(</span><span style="color: #000000;">"</span><span style="color: #000000;">main.cpp</span><span style="color: #000000;">"</span><span style="color: #000000;">));&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;获取给定文件全路径&nbsp;&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">full&nbsp;path&nbsp;name&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">full_path.file_string()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;检测是不是路径</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">is&nbsp;path:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">fs::is_directory(full_path)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;file_count&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;dir_count&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;other_count&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;err_count&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;full_path&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;fs::system_complete(fs::path(</span><span style="color: #000000;">"</span><span style="color: #000000;">C:\\WINDOWS</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;目录迭代&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;fs::directory_iterator&nbsp;end_iter;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(fs::directory_iterator&nbsp;dir_itr(full_path);dir_itr&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;end_iter;</span><span style="color: #000000;">++</span><span style="color: #000000;">dir_itr)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(fs::is_directory(dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">status()))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">dir_count;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">path().filename()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">[directory]\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&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;">(fs::is_regular_file(dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">status()))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">file_count;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">path().filename()</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;全路径名字&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">path().native_file_string()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">other_count;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">path().filename()&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">[other]\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;std::exception&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">&nbsp;ex)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">err_count;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">dir_itr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">path().filename()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">ex.what()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</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;">&lt;&lt;</span><span style="color: #000000;">file_count</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">files\n</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">dir_count</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;directories\n</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">other_count</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;others\n</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">err_count</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;errors\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;生成文件目录</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;fs::create_directories(fs::path(</span><span style="color: #000000;">"</span><span style="color: #000000;">filesystem</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}<br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;ccsdu2004&nbsp;<br></span></div>
boost文件系统还不错<br>要是再加入对压缩包或者资源包的支持就更好了!<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/123076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-11 16:42 <a href="http://www.cppblog.com/gaimor/archive/2010/08/11/123076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之2.字符串算法</title><link>http://www.cppblog.com/gaimor/archive/2010/08/10/122898.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Tue, 10 Aug 2010 02:11:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/10/122898.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/122898.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/10/122898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/122898.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/122898.html</trackback:ping><description><![CDATA[本文主要涉及boost中algorithm之string问题<br>基本的字符串函数类型有<br>替换<br>裁剪<br>大小写替换<br>正则表达式<br>切割<br>判断<br>和擦除操作等等<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: #008000;">//</span><span style="color: #008000;">!&nbsp;boost之2:字符串算法类&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">functional</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></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: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;字符串&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;str(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;abc-*-ABC-*-aBc&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;以-或者*切割字符串&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;ret;<br>&nbsp;&nbsp;&nbsp;&nbsp;split(ret,str,is_any_of(</span><span style="color: #000000;">"</span><span style="color: #000000;">-*</span><span style="color: #000000;">"</span><span style="color: #000000;">),token_compress_on);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(unsigned&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;index</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ret.size();index</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">index</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">ret[index]</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;切换为小写</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;to_lower(str);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">str</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;去掉左边的空格</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;trim_left(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">str</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;去掉右边的空格</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;trim_right(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">str</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;替换</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;replace_all(str,</span><span style="color: #000000;">"</span><span style="color: #000000;">a</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">A</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">str</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;擦除&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">erase_all_copy(str,</span><span style="color: #000000;">"</span><span style="color: #000000;">A</span><span style="color: #000000;">"</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_nth(str,</span><span style="color: #000000;">"</span><span style="color: #000000;">c</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">ccsdu2004</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">str</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;擦除给定范围</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">erase_range_copy(str,make_iterator_range(str.begin()</span><span style="color: #000000;">+</span><span style="color: #000000;">2</span><span style="color: #000000;">,str.begin()</span><span style="color: #000000;">+</span><span style="color: #000000;">5</span><span style="color: #000000;">))</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">is&nbsp;start&nbsp;with:A:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">starts_with(str,</span><span style="color: #0000ff;">string</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">A</span><span style="color: #000000;">"</span><span style="color: #000000;">))</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">is&nbsp;end&nbsp;with:C:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">ends_with(str,</span><span style="color: #0000ff;">string</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">C</span><span style="color: #000000;">"</span><span style="color: #000000;">))</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">is&nbsp;contain&nbsp;with:ccs:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">contains(str,</span><span style="color: #0000ff;">string</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">ccs</span><span style="color: #000000;">"</span><span style="color: #000000;">))</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&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>}<br></span></div>
<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/122898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-10 10:11 <a href="http://www.cppblog.com/gaimor/archive/2010/08/10/122898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost之1.minmax</title><link>http://www.cppblog.com/gaimor/archive/2010/08/09/122769.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 09 Aug 2010 05:31:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/09/122769.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/122769.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/09/122769.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/122769.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/122769.html</trackback:ping><description><![CDATA[发一系列关于boost库的使用文章以备使用<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: #008000;">//</span><span style="color: #008000;">!&nbsp;boost库引导1.minmax&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">list</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#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>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #000000;">minmax.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #000000;">minmax_element.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></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>inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Print(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">i</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;&nbsp;&nbsp;<br>}<br><br>inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Rand()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;rand()</span><span style="color: #000000;">%</span><span style="color: #000000;">10</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;list</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;l;<br>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;list</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">::const_iterator&nbsp;iterator;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;使用给定泛函子生成12个随机数并推入链表&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;generate_n(front_inserter(l),</span><span style="color: #000000;">12</span><span style="color: #000000;">,Rand);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::for_each(l.begin(),l.end(),Print);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">list&nbsp;size&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">l.size()</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;获取给定序列的对大最小值,返回为std::pair&lt;..,..&gt;&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;pair</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator,iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;result&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;boost::minmax_element(l.begin(),l.end());<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;smallest&nbsp;element&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;*</span><span style="color: #000000;">(result.first)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;largest&nbsp;element&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;*</span><span style="color: #000000;">(result.second)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;获取第一个最小元素&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;iterator&nbsp;minitr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;boost::first_min_element(l.begin(),l.end());<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">first&nbsp;min&nbsp;element&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;*</span><span style="color: #000000;">minitr</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>}<br><br>&nbsp;</span></div>
//! 后论:似乎没看到什么强大的功能
<br>//!ccsdu2004<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/122769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-09 13:31 <a href="http://www.cppblog.com/gaimor/archive/2010/08/09/122769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>