﻿<?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++博客-加文-文章分类-C++</title><link>http://www.cppblog.com/MyCBlog/category/18544.html</link><description>希望是美好的……</description><language>zh-cn</language><lastBuildDate>Fri, 25 May 2012 10:02:45 GMT</lastBuildDate><pubDate>Fri, 25 May 2012 10:02:45 GMT</pubDate><ttl>60</ttl><item><title>类的相关设计</title><link>http://www.cppblog.com/MyCBlog/articles/175757.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Tue, 22 May 2012 06:17:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/175757.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/175757.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/175757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/175757.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/175757.html</trackback:ping><description><![CDATA[<p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp; &nbsp;</span><span style="font-family:宋体;">如果一个类只做继承用，那么析构函数，应该写成虚析构函数，并且构造函数，写入</span>protected<span style="font-family:宋体;">类型。</span></p>  <p style="margin-left:21.0pt;text-indent:0cm;">&nbsp;</p><img src ="http://www.cppblog.com/MyCBlog/aggbug/175757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-05-22 14:17 <a href="http://www.cppblog.com/MyCBlog/articles/175757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bulider模式</title><link>http://www.cppblog.com/MyCBlog/articles/175744.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Tue, 22 May 2012 03:55:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/175744.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/175744.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/175744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/175744.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/175744.html</trackback:ping><description><![CDATA[1，产品头文件：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#ifndef&nbsp;_PRODUCT_H_<br /><span style="color: #0000FF; ">#define</span>&nbsp;_PRODUCT_H_<br /><span style="color: #0000FF; ">class</span>&nbsp;Carcase<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~Carcase(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Carcase(){}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />};<br /><br /><span style="color: #0000FF; ">class</span>&nbsp;wheel<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~wheel(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;wheel(){}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />};<br /><span style="color: #0000FF; ">class</span>&nbsp;Tyre<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~Tyre(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Tyre(){}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />};<br /><span style="color: #0000FF; ">class</span>&nbsp;Engine<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~Engine(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Engine(){}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />};<br /><span style="color: #0000FF; ">class</span>&nbsp;Motor<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~Motor()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;car&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;whe&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;tyr&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;eng&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Motor(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setcar(Carcase*&nbsp;_car)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;car&nbsp;=&nbsp;_car;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setwhe(wheel*&nbsp;_whe){<span style="color: #0000FF; ">this</span>-&gt;whe&nbsp;=&nbsp;_whe;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;settyr(Tyre*&nbsp;_tyr){<span style="color: #0000FF; ">this</span>-&gt;tyr&nbsp;=&nbsp;_tyr;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;seteng(Engine*&nbsp;_eng){<span style="color: #0000FF; ">this</span>-&gt;eng&nbsp;=&nbsp;_eng;}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;Carcase*&nbsp;car;<br />&nbsp;&nbsp;&nbsp;&nbsp;wheel*&nbsp;whe;<br />&nbsp;&nbsp;&nbsp;&nbsp;Tyre*&nbsp;tyr;<br />&nbsp;&nbsp;&nbsp;&nbsp;Engine*&nbsp;eng;<br />};<br /><span style="color: #0000FF; ">#endif</span></div>2，工厂头文件：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#ifndef&nbsp;_FACTORY_H_<br /><span style="color: #0000FF; ">#define</span>&nbsp;_FACTORY_H_<br />#include&nbsp;"Product.h"<br /><span style="color: #0000FF; ">class</span>&nbsp;Factory&nbsp;<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;~Factory(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Factory(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Carcase*&nbsp;CreateCarcase(){<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Carcase();}<br />&nbsp;&nbsp;&nbsp;&nbsp;wheel*&nbsp;CreateWheel(){<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;wheel();}<br />&nbsp;&nbsp;&nbsp;&nbsp;Engine*&nbsp;CreateEngine(){<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Engine();}<br />&nbsp;&nbsp;&nbsp;&nbsp;Tyre*&nbsp;CreateTyre(){<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Tyre();}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />};<br /><span style="color: #0000FF; ">#endif</span></div>3，装配器头文件：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#ifndef&nbsp;_ASSEMBLER_H_<br /><span style="color: #0000FF; ">#define</span>&nbsp;_ASSEMBLER_H_<br />#include&nbsp;"Factory.h"<br /><span style="color: #0000FF; ">class</span>&nbsp;Assembler<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;Assembler(Factory*&nbsp;fac)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;fac&nbsp;=&nbsp;fac;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;~Assembler(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;Motor*&nbsp;GenerateMotor()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>-&gt;mot&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Motor();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mot-&gt;setcar(fac-&gt;CreateCarcase());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mot-&gt;seteng(fac-&gt;CreateEngine());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mot-&gt;settyr(fac-&gt;CreateTyre());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mot-&gt;setwhe(fac-&gt;CreateWheel());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;mot;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #0000FF; ">protected</span>:<br /><span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;Factory*&nbsp;fac;<br />&nbsp;&nbsp;&nbsp;&nbsp;Motor*&nbsp;mot;<br />};<br /><span style="color: #0000FF; ">#endif</span></div>4，客户端测试：<span style="background-color: #eeeeee; font-size: 13px; ">#include&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; ">"</span><span style="background-color: #eeeeee; font-size: 13px; ">Assembler.h</span><span style="background-color: #eeeeee; font-size: 13px; ">"</span><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">#include&nbsp;&lt;iostream&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Assembler*&nbsp;ass&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Assembler(<span style="color: #0000FF; ">new</span>&nbsp;Factory());<br />&nbsp;&nbsp;&nbsp;&nbsp;Motor*&nbsp;mot&nbsp;=&nbsp;ass-&gt;GenerateMotor();<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/175744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-05-22 11:55 <a href="http://www.cppblog.com/MyCBlog/articles/175744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类静态变量相关问题</title><link>http://www.cppblog.com/MyCBlog/articles/175580.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Mon, 21 May 2012 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/175580.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/175580.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/175580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/175580.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/175580.html</trackback:ping><description><![CDATA[<pre id="best-answer-content"  mb10"="" style="margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: Arial; white-space: pre-wrap; word-wrap: break-word; zoom: 1; line-height: 22px; background-color: #fffcf6; ">1.static成员的所有者是类本身和对象，但是多有对象拥有一样的静态成员。从而在定义对象是不能通过构造函数对其进行初始化。<br />2.静态成员不能在类定义里边初始化，只能在class body外初始化。 <br />3.静态成员仍然遵循public，private，protected访问准则。 <br />4.静态成员函数没有this指针，它不能返回非静态成员，因为除了对象会调用它外，类本身也可以调用。</pre><img src ="http://www.cppblog.com/MyCBlog/aggbug/175580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-05-21 11:50 <a href="http://www.cppblog.com/MyCBlog/articles/175580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>函数模板错误解析</title><link>http://www.cppblog.com/MyCBlog/articles/173458.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Wed, 02 May 2012 04:30:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/173458.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/173458.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/173458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/173458.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/173458.html</trackback:ping><description><![CDATA[<div><span style="font-size: 11px;">#include &lt;iostream&gt;</span></div><div><span style="font-size: 11px;">template &lt;typename T&gt;</span></div><div><span style="font-size: 11px;">inline T const&amp; max(T const&amp; a,T const&amp; b)</span></div><div><span style="font-size: 11px;">{</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>return a &gt; b ? a : b;</span></div><div><span style="font-size: 11px;">}</span></div><div><span style="font-size: 11px;">int main()</span></div><div><span style="font-size: 11px;">{</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>std::cout&lt;&lt;max(4,7)&lt;&lt;std::endl;<span style="white-space:pre">				</span>//实例化都是int型。</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>std::cout&lt;&lt;max(4,4.2)&lt;&lt;std::endl; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //ERROR ,实例化发生歧义，第一个int，第二个是double型</span></div><div><span style="white-space: pre; font-size: 11px;">	</span></div><div><span style="white-space: pre; font-size: 11px;">	</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>//上面的错误有三个解决方法：</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>1，对实参进行强制类型转换：</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>max(static_cast&lt;double&gt;(4),4.2);</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>2,显示指定类型：</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>max&lt;double&gt;(4,4.2);</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>3,指定两个参数可以具有不同的类型</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>getchar();</span></div><div><span style="font-size: 11px;"><span style="white-space:pre">	</span>return 0;</span></div><div><span style="font-size: 11px;">}</span></div><img src ="http://www.cppblog.com/MyCBlog/aggbug/173458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-05-02 12:30 <a href="http://www.cppblog.com/MyCBlog/articles/173458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模板的编译</title><link>http://www.cppblog.com/MyCBlog/articles/173453.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Wed, 02 May 2012 04:08:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/173453.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/173453.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/173453.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/173453.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/173453.html</trackback:ping><description><![CDATA[<p><span style="font-family:宋体;">模板被编译了两次</span></p>  <p style="margin-left:21.0pt;text-indent:-21.0pt;">1.<span style="font-family: 'Times New Roman'; font-size: 7pt; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;">在实例化之前，主要是检查语法错误。</span></p>  <p style="margin-left:21.0pt;text-indent:-21.0pt;">2.<span style="font-family: 'Times New Roman'; font-size: 7pt; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:宋体;">在实例化期间，检查模板代码，检查所有的调用都有效。</span></p><img src ="http://www.cppblog.com/MyCBlog/aggbug/173453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-05-02 12:08 <a href="http://www.cppblog.com/MyCBlog/articles/173453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GetExitCodeThread和GetCurrentThreadId</title><link>http://www.cppblog.com/MyCBlog/articles/172516.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Mon, 23 Apr 2012 16:03:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/172516.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/172516.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/172516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/172516.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/172516.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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;one.cpp&nbsp;:&nbsp;定义控制台应用程序的入口点。<br /></span><span style="color: #008000; ">//<br /></span><br />#include&nbsp;"stdafx.h"<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />DWORD&nbsp;WINAPI&nbsp;MyThread(<span style="color: #0000FF; ">void</span>*&nbsp;p)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;GetCurrentThreadId()&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;3;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;_tmain(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;HANDLE&nbsp;handle;<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dw;<br />&nbsp;&nbsp;&nbsp;&nbsp;handle&nbsp;=&nbsp;CreateThread(NULL,0,MyThread,NULL,0,&amp;dw);<br />&nbsp;&nbsp;&nbsp;&nbsp;Sleep(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;GetExitCodeThread(handle,&amp;dw);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;dw&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(handle);<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/172516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-24 00:03 <a href="http://www.cppblog.com/MyCBlog/articles/172516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SuspendThread（）和 ResumeThread（）</title><link>http://www.cppblog.com/MyCBlog/articles/172515.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Mon, 23 Apr 2012 15:56:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/172515.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/172515.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/172515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/172515.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/172515.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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;one.cpp&nbsp;:&nbsp;定义控制台应用程序的入口点。<br /></span><span style="color: #008000; ">//<br /></span><br />#include&nbsp;"stdafx.h"<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />DWORD&nbsp;WINAPI&nbsp;MyThread(<span style="color: #0000FF; ">void</span>*&nbsp;p)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=0;i&lt;100;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"hello&nbsp;everyone."&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;_tmain(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;HANDLE&nbsp;handle;<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dw;<br />&nbsp;&nbsp;&nbsp;&nbsp;handle&nbsp;=&nbsp;CreateThread(NULL,0,MyThread,NULL,0,&amp;dw);<br />&nbsp;&nbsp;&nbsp;&nbsp;Sleep(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=0;i&lt;10;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"now&nbsp;suspended&nbsp;"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SuspendThread(handle);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;j=0;j&lt;3;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"good&nbsp;thank&nbsp;you"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"now&nbsp;sesume"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResumeThread(handle);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(300);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(handle);<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/172515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-23 23:56 <a href="http://www.cppblog.com/MyCBlog/articles/172515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程测试</title><link>http://www.cppblog.com/MyCBlog/articles/172513.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Mon, 23 Apr 2012 15:49:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/172513.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/172513.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/172513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/172513.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/172513.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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;one.cpp&nbsp;:&nbsp;定义控制台应用程序的入口点。<br /></span><span style="color: #008000; ">//<br /></span><br />#include&nbsp;"stdafx.h"<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />BOOL&nbsp;repeat&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>;<br /><br />DWORD&nbsp;WINAPI&nbsp;MyThread1(LPVOID&nbsp;lpParameter)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(repeat)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"how&nbsp;are&nbsp;you&nbsp;?"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;exitCode;<br />&nbsp;&nbsp;&nbsp;&nbsp;ExitThread(exitCode);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />DWORD&nbsp;WINAPI&nbsp;MyThread2(LPVOID&nbsp;lpParameter)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(repeat)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"very&nbsp;well&nbsp;!"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;exitCode;<br />&nbsp;&nbsp;&nbsp;&nbsp;ExitThread(exitCode);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />DWORD&nbsp;WINAPI&nbsp;MyThread3(LPVOID&nbsp;lpParameter)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(repeat)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"very&nbsp;well&nbsp;!"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;exitCode;<br />&nbsp;&nbsp;&nbsp;&nbsp;ExitThread(exitCode);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />DWORD&nbsp;WINAPI&nbsp;KillThread(LPVOID&nbsp;lpParameter)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;repeat&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;_tmain(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;HANDLE&nbsp;handle1,handle2,handle3;<br />&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dw1,dw2,dw3;<br />&nbsp;&nbsp;&nbsp;&nbsp;handle1&nbsp;=&nbsp;CreateThread(NULL,0,MyThread1,NULL,0,&amp;dw1);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(handle1==&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"线程1创建失败！！"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;handle2&nbsp;=&nbsp;CreateThread(NULL,0,MyThread2,NULL,0,&amp;dw2);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(handle2==&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"线程2创建失败！！"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;handle3&nbsp;=&nbsp;CreateThread(NULL,0,MyThread3,NULL,0,&amp;dw3);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(handle3==&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"线程1创建失败！！"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(handle1);<br />&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(handle2);<br />&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(handle3);<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/172513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-23 23:49 <a href="http://www.cppblog.com/MyCBlog/articles/172513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模板演绎</title><link>http://www.cppblog.com/MyCBlog/articles/172492.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Mon, 23 Apr 2012 12:18:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/172492.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/172492.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/172492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/172492.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/172492.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->template&lt;typename&nbsp;T1,typename&nbsp;T2,typename&nbsp;RT&gt;<br />inline&nbsp;RT&nbsp;max(T1&nbsp;<span style="color: #0000FF; ">const</span>&amp;&nbsp;a,T2&nbsp;<span style="color: #0000FF; ">const</span>&amp;&nbsp;b)<br /><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /><br />调用时，max&lt;<span style="color: #0000FF; ">int</span>,<span style="color: #0000FF; ">double</span>,<span style="color: #0000FF; ">double</span>&gt;(4,4.2)<br /><br /><br />template&lt;typename&nbsp;T1,typename&nbsp;T2,typename&nbsp;RT&gt;<br />inline&nbsp;RT&nbsp;max(T1&nbsp;<span style="color: #0000FF; ">const</span>&amp;&nbsp;a,T2&nbsp;<span style="color: #0000FF; ">const</span>&amp;&nbsp;b)<br /><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /><br />max(<span style="color: #0000FF; ">double</span>)(4,4.2)<br /></div><img src ="http://www.cppblog.com/MyCBlog/aggbug/172492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-23 20:18 <a href="http://www.cppblog.com/MyCBlog/articles/172492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件操作库函数</title><link>http://www.cppblog.com/MyCBlog/articles/171744.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Tue, 17 Apr 2012 04:38:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171744.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171744.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171744.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171744.html</trackback:ping><description><![CDATA[<div>　　 　　 文件的打开操作 fopen 打开一个文件</div><div></div><div>　　 　　 文件的关闭操作 fclose 关闭一个文件</div><div></div><div>　　 　　 文件的读写操作 fgetc 从文件中读取一个字符</div><div>　　 　　 　　　　　　　 fputc 写一个字符到文件中去</div><div>　　 　　 　　　　　　　 fgets 从文件中读取一个字符串</div><div>　　 　　 　　　　　　　 fputs 写一个字符串到文件中去</div><div>　　 　　 　　　　　　　 fprintf 往文件中写格式化数据</div><div>　　 　　 　　　　　　　 fscanf 格式化读取文件中数据</div><div>　　 　　 　　　　　　　 fread 以二进制形式读取文件中的数据</div><div>　　 　　 　　　　　　　 fwrite 以二进制形式写数据到文件中去</div><div>　　 　　 　　　　　　　 getw 以二进制形式读取一个整数</div><div>　　 　　 　　　　　　　 putw 以二进制形式存贮一个整数</div><div></div><div>　　 　文件状态检查函数 feof 文件结束</div><div>　　 　　 　　　　　　　 ferror 文件读/写出错</div><div>　　 　　 　　　　　　　 clearerr 清除文件错误标志</div><div>　　 　　 　　　　　　　 ftell 了解文件指针的当前位置</div><div></div><div>　　　　　　文件定位函数 rewind 反绕</div><div>　　 　　 　　　　　　　 fseek 随机定位&nbsp;</div><div></div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-17 12:38 <a href="http://www.cppblog.com/MyCBlog/articles/171744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C文件操作</title><link>http://www.cppblog.com/MyCBlog/articles/171742.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Tue, 17 Apr 2012 04:36:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171742.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171742.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171742.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171742.html</trackback:ping><description><![CDATA[<p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><strong style="font-weight: bold; ">文件概述</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">1、文件：存储在外部介质上一组相关数据的集合。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">　　例如，程序文件就是程序代码的集合；数据文件是数据的集合。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">2、文件名：操作系统以文件为单位对数据进行管理，每个文件有一个名称，文件名是文件的标识，操作系统通过文件名访问文件。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">　　例如，通过文件名查找，打开文件，然后读取或写入数据。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">3、<strong style="font-weight: bold; ">磁盘文件、设备文件</strong>：</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">（1）磁盘文件：文件一般保存在磁介质（如软盘、硬盘）上，所以称为磁盘文件。<br />（2）设备文件：操作系统还经常将与主机相连接的I/O设备（如键盘-输入文件、显示器、打印机-输出文件）也看作为文件，即设备文件。很多磁盘文件的概念、操作，对设备文件也同样有意义，有效。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">4、<strong style="font-weight: bold; ">ASCII文件、二进制文件</strong>：</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><u>根据文件的组织形式，文件可以分为ASCII文件和二进制文件。</u><br />（1）ASCII文件（文本文件）：每个字节存放一个ASCII码，代表一个字符。ASCII文件可以阅读，可以打印，但是它与内存数据交换时需要转换。<br />（2）二进制文件：将内存中的数据按照其在内存中的存储形式原样输出、并保存在文件中。二进制文件占用空间少，内存数据和磁盘数据交换时无须转换，但是二进制文件不可阅读、打印。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">　　例如：同样的整数10000，如果保存在文本文件中，就可以用notepad,edit等文本编辑器阅读，也可以在dos下用type显示，它占用5个字节；如果保存在二进制文件中，不能阅读，但是我们知道一个整数在内存中用补码表示并占用2个字节，所以如果保存在二进制文件中就占用2个字节。<br />文本文件/二进制文件不是用后缀来确定的，而是以内容来确定的，但是文件后缀往往隐含其类别，如*.txt代表文本文件，*.doc，*.bmp，*.exe二进制文件。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">5、缓冲文件系统、非缓冲文件系统：</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">（1）缓冲文件系统：系统自动地在内存中为每个正在使用的文件开辟一个缓冲区。在从磁盘读数据时，一次从磁盘文件将一些数据输入到内存缓冲区（充满缓冲区），然后再从缓冲区逐个将数据送给接受变量；向磁盘文件输出数据时，先将数据送到内存缓冲区，装满缓冲区后才一起输出到磁盘。减少对磁盘的实际访问（读/写）次数。<u>ANSI C只采用缓冲文件系统</u>。<br />（2）非缓冲文件系统：不由系统自动设置缓冲区，而由用户根据需要设置。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">　　C语言中，没有输入输出语句，<u>对文件的读写都是用库函数实现的</u>。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><strong style="font-weight: bold; ">文件类型指针</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">1、文件类型（结构体）- FILE类型<br />　　<u>FILE类型是一种结构体类型</u>，在stdio.h中定义，用于存放文件的当前的有关信息。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">2、文件指针变量（文件指针）<br />　　通常对FILE结构体的访问是通过FILE类型指针变量（简称：文件指针）完成，在打开一个文件后，系统开辟一个文件变量并返回此文件的文件指针；将此文件指针保存在一个文件指针变量中，以后所有对文件的操作都通过此文件指针变量完成；直到关闭文件，文件指针指向的文件类型变量释放。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">例如：<br />fp=fopen("mydata.txt",...);&nbsp;<br />/* 打开文件时，系统开辟一个文件变量，并返回文件指针，将此指针赋值(保存)给文件指针变量fp */<br />fclose(fp);&nbsp;<br />/* 关闭文件，释放文件指针fp指向的文件变量 */</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><strong style="font-weight: bold; ">对文件的操作的步骤：先打开，后读写，最后关闭。</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><strong style="font-weight: bold; ">文件的打开（fopen函数）</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">1、文件的打开后才能进行操作，文件打开通过调用fopen函数实现。<br />调用fopen的格式是：<br />open(文件名，打开方式或使用方式);</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">注意：一定将函数返回的文件指针赋值给"文件指针变量"。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">例如：<br />FILE *fp;<br />fp=fopen("d:\\a1.txt"，"r");</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">　　文件打开一定要检查fopen函数的返回值。因为有可能文件不能正常打开。<u>不能正常打开时fopen函数返回NULL。</u><br />可以用下面的形式检查：<br />if((fp=fopen(...))==NULL){ printf("error open file\n"); return; }</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">说明：<br />（1）打开d:盘根目录下文件名为a1.txt的文件，打开方式"r"表示只读。<br />（2）fopen函数返回指向d:\a1.txt的文件指针，然后赋值给fp，fp-&gt;此文件，即fp与此文件关联。<br />（3）文件名包含文件名.扩展名；<u>路径要用"\\"表示。</u><br />（4）<strong style="font-weight: bold; ">文件打开方式</strong>包含下面几类表示打开方式的关键词，不同类的可以组合。<br />　　<strong style="font-weight: bold; ">"r"方式：</strong>只能从文件读入数据而不能向文件写入数据。该方式要求<strong style="font-weight: bold; ">欲打开的文件已经存在</strong>。<br />　　<strong style="font-weight: bold; ">"w"方式：</strong>只能向文件写入数据而不能从文件读入数据。如果文件不存在，创建文件，如果文件存在，原来文件被删除，然后重新创建文件（相当覆盖原来文件）。<br />　　<strong style="font-weight: bold; ">"a"方式：</strong>在文件末尾添加数据，而不删除原来文件。该方式要求<strong style="font-weight: bold; ">欲打开的文件已经存在</strong>。<br />　　<strong style="font-weight: bold; ">"+"（"r+,w+,a+"）：</strong>均为可读、可写。但是<strong style="font-weight: bold; ">"r+"，"a+"要求文件已经存在</strong>,"w+"无此要求；"r+"打开文件时文件指针指向文件开头,"a+"打开文件时文件指针指向文件末尾。<br />　　<strong style="font-weight: bold; ">"b、t"：</strong>以二进制或文本方式打开文件。默认是文本方式，t可以省略。<strong style="font-weight: bold; ">读文本文件时，将"回车"/"换行"转换为一个"换行"；写文本文件时，将"换行"转换为"回车/换行"。</strong><br />（7）程序开始运行时，系统自动打开三个标准文件：标准输入，标准输出，标准出错输出。一般这三个文件对应于终端（键盘、显示器）。这三个文件不需要手工打开，就可以使用。标准文件：标准输入，标准输出，标准出错输出对应的文件指针是stdin,stdout,stderr。</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><strong style="font-weight: bold; ">文件的关闭（fclose函数）</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">文件使用完毕后必须关闭，以避免数据丢失。&nbsp;<br />格式：fclose(文件指针);</p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; "><br /><strong style="font-weight: bold; ">文件的读写</strong></p><p style="line-height: 25px; color: #284755; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; background-color: #ffffff; ">常用的文件读写函数：<br />1、字符读写函数：fgetc,fputc<br />2、字符串读写函数：fgets,fputs<br />3、格式化读写函数：fscanf,fprintf<br />4、数据块读写函数：fread,fwrite<br />说明：<br />1、这些函数都以f（file）开头。<br />2、这些函数都要使用打开文件时获得的文件指针。<br />3、前三类函数与标准I/O函数使用基本相同。<br />4、一般，对于文本文件使用"顺序访问"方式操作，对于二进制文件使用"随机访问"方式操作</p><img src ="http://www.cppblog.com/MyCBlog/aggbug/171742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-17 12:36 <a href="http://www.cppblog.com/MyCBlog/articles/171742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>expat----xml解析器</title><link>http://www.cppblog.com/MyCBlog/articles/171732.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Tue, 17 Apr 2012 03:51:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171732.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171732.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171732.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171732.html</trackback:ping><description><![CDATA[<div>其实expat是php内置的一个xml解析器，当然也可以在其他很多语言中使用，这里主要在win32 plat下的c/c++下使用expat。</div><div>expat是基于sax来进行xml解析而不是dom解析。因此，在expat中设置了很多的回调来处理。</div><div></div><div>在win32下使用，可以http://sourceforge.net/projects/expat/下载，里面有win32版本，下载下来的是一个安装包，直接安装，</div><div>安装之后，在安装目录例如C:\Expat-2.0.0下有Docs libs source 等几个目录，其中libs目录下放了4个文件，分别是libexpat</div><div>的Ansi和Unicode的dll和对应lib。在source下，有 example tests lib等目录，其中lib目录下是expat的源代码（头文件和实现文件）</div><div>以及dsp文件。里面有编译生成动态链接库的工程文件expat.dsp以及编译成为静态库的expat_static.dsp。expat.dsp编译出来的动态区</div><div>名称为libexpat.dll（libexpat.lib)；静态库工程expat_static.dsp编译出来的静态库名称为：libexpatMT.lib。</div><div>&nbsp;在source\example目录下有参考代码。</div><div>&nbsp;其中看看elements 这个example就ok了。</div><div>&nbsp;对于一个简单的xml文件，我们</div><div>main(int argc, char *argv[])</div><div>{</div><div>&nbsp; XML_Parser p = XML_ParserCreate(NULL);</div><div></div><div>&nbsp; XML_SetCharacterDataHandler(p,charhandler);</div><div>&nbsp; XML_SetElementHandler(p, start, end);</div><div>&nbsp;&nbsp;</div><div>&nbsp; for (;;) {</div><div>&nbsp; &nbsp; int done;</div><div>&nbsp; &nbsp; int len;</div><div></div><div>&nbsp; &nbsp; len = fread(Buff, 1, BUFFSIZE, stdin);</div><div>&nbsp; &nbsp; if (ferror(stdin)) {</div><div>&nbsp; &nbsp; &nbsp; fprintf(stderr, "Read error\n");</div><div>&nbsp; &nbsp; &nbsp; exit(-1);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; done = feof(stdin);</div><div></div><div>&nbsp; &nbsp; if (XML_Parse(p, Buff, len, done) == XML_STATUS_ERROR) {</div><div>&nbsp; &nbsp; &nbsp; fprintf(stderr, "Parse error at line %" XML_FMT_INT_MOD "u:\n%s\n",</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XML_GetCurrentLineNumber(p),</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XML_ErrorString(XML_GetErrorCode(p)));</div><div>&nbsp; &nbsp; &nbsp; exit(-1);</div><div>&nbsp; &nbsp; }</div><div>&nbsp;printf( " depth = %d \n",Depth);</div><div>&nbsp; &nbsp; if (done)</div><div>&nbsp; &nbsp; &nbsp; break;</div><div>&nbsp; }</div><div>&nbsp; return 0;</div><div>}</div><div>其中XML_SetElementHandler设置回调，处理element节点；XML_SetCharacterDataHandler设置回调用于处理text节点</div><div>一般来说有了这两个我们就可以处理了，例如下面的一个xml文件</div><div>&lt;?xml version="1.0"?&gt;</div><div>&lt;xmlRoot price=""&gt;</div><div>&nbsp;&lt;YEAR Now="2005"&gt;</div><div>&nbsp;&nbsp;</div><div>&nbsp; &lt;QUARTER1&gt;2005&lt;/QUARTER1&gt;</div><div>&nbsp; &nbsp;</div><div>&nbsp;&lt;/YEAR&gt;</div><div>&lt;/xmlRoot&gt;</div><div></div><div>处理到xmlRoot节点的时候，会调用XML_SetElementHandler设置的回调函数，我们可以从回调函数中获取节点名称，节点的</div><div>属性列表，包括各个属性名称和对应的属性值。这里就可以获取到一个属性price，值为空。</div><div>&nbsp; &nbsp;继续下面的处理，当处理到QIARTER1时，会调用XML_SetCharacterDataHandler设置的回调函数获取text节点值。</div><div>char buf[100]={0};</div><div>static void XMLCALL charhandler(void *userData,const XML_Char *s, int len)</div><div>{</div><div>&nbsp;if(len!=0)</div><div>&nbsp;{</div><div>&nbsp; memcpy(buf,s,len);</div><div>&nbsp; buf[len] = '\0';</div><div>&nbsp; rintf("%s " ,buf); &nbsp;</div><div>&nbsp;}&nbsp;</div><div>}</div><div>&nbsp; &nbsp;注意，这里的s不是以\0结束的。</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-17 11:51 <a href="http://www.cppblog.com/MyCBlog/articles/171732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>map insert</title><link>http://www.cppblog.com/MyCBlog/articles/171459.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Sun, 15 Apr 2012 04:32:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171459.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171459.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171459.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171459.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;map&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;map&lt;<span style="color: #0000FF; ">int</span>,<span style="color: #0000FF; ">char</span>,less&lt;<span style="color: #0000FF; ">int</span>&gt;&gt;M;<br />&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;m1;<br />&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(2,'B'));<br />&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(3,'C'));<br />&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(1,'A'));<br />&nbsp;&nbsp;&nbsp;&nbsp;M::iterator&nbsp;It&nbsp;=&nbsp;m1.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl&lt;&lt;"m1:"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(It&nbsp;!=&nbsp;m1.end())<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;(*It).first&lt;&lt;"&nbsp;-&nbsp;"&lt;&lt;(*It).second&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It++;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-15 12:32 <a href="http://www.cppblog.com/MyCBlog/articles/171459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EventSet 介绍</title><link>http://www.cppblog.com/MyCBlog/articles/171225.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Fri, 13 Apr 2012 04:40:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171225.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171225.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171225.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171225.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span>&nbsp;CEGUIEXPORT&nbsp;EventSet<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor&nbsp;for&nbsp;EventSet&nbsp;objects<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;EventSet();<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destructor&nbsp;for&nbsp;EventSet&nbsp;objects<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;~EventSet(<span style="color: #0000FF; ">void</span>);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add&nbsp;a&nbsp;new&nbsp;Event&nbsp;to&nbsp;the&nbsp;EventSet&nbsp;with&nbsp;the&nbsp;given&nbsp;name.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;to&nbsp;give&nbsp;the&nbsp;new&nbsp;Event.&nbsp;&nbsp;The&nbsp;name&nbsp;must&nbsp;be&nbsp;unique&nbsp;for&nbsp;the&nbsp;EventSet.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\exception&nbsp;AlreadyExistsException&nbsp;&nbsp;&nbsp;&nbsp;Thrown&nbsp;if&nbsp;an&nbsp;Event&nbsp;already&nbsp;exists&nbsp;named&nbsp;\a&nbsp;name.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;&nbsp;&nbsp;&nbsp;addEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes&nbsp;the&nbsp;Event&nbsp;with&nbsp;the&nbsp;given&nbsp;name.&nbsp;&nbsp;All&nbsp;connections&nbsp;to&nbsp;the&nbsp;event&nbsp;are&nbsp;disconnected.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;remove.&nbsp;&nbsp;If&nbsp;no&nbsp;such&nbsp;Event&nbsp;exists,&nbsp;nothing&nbsp;happens.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;&nbsp;&nbsp;&nbsp;removeEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove&nbsp;all&nbsp;Event&nbsp;objects&nbsp;from&nbsp;the&nbsp;EventSet<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;&nbsp;&nbsp;&nbsp;removeAllEvents(<span style="color: #0000FF; ">void</span>);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks&nbsp;to&nbsp;see&nbsp;if&nbsp;an&nbsp;Event&nbsp;with&nbsp;the&nbsp;given&nbsp;name&nbsp;is&nbsp;present&nbsp;in&nbsp;the&nbsp;EventSet.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true&nbsp;if&nbsp;an&nbsp;Event&nbsp;named&nbsp;\a&nbsp;name&nbsp;was&nbsp;found,&nbsp;or&nbsp;false&nbsp;if&nbsp;the&nbsp;Event&nbsp;was&nbsp;not&nbsp;found<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;&nbsp;&nbsp;&nbsp;isEventPresent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subscribes&nbsp;a&nbsp;handler&nbsp;to&nbsp;the&nbsp;named&nbsp;Event.&nbsp;&nbsp;If&nbsp;the&nbsp;named&nbsp;Event&nbsp;is&nbsp;not&nbsp;yet<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;present&nbsp;in&nbsp;the&nbsp;EventSet,&nbsp;it&nbsp;is&nbsp;created&nbsp;and&nbsp;added.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;subscribe&nbsp;to.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;subscriber<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function&nbsp;or&nbsp;object&nbsp;that&nbsp;is&nbsp;to&nbsp;be&nbsp;subscribed&nbsp;to&nbsp;the&nbsp;Event.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;check&nbsp;the&nbsp;status&nbsp;of&nbsp;the&nbsp;Event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;and&nbsp;to&nbsp;disconnect&nbsp;(unsubscribe)&nbsp;from&nbsp;the&nbsp;Event.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;Event::Connection&nbsp;subscribeEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;Event::Subscriber&nbsp;subscriber);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subscribes&nbsp;a&nbsp;handler&nbsp;to&nbsp;the&nbsp;specified&nbsp;group&nbsp;of&nbsp;the&nbsp;named&nbsp;Event.&nbsp;&nbsp;If&nbsp;the<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;named&nbsp;Event&nbsp;is&nbsp;not&nbsp;yet&nbsp;present&nbsp;in&nbsp;the&nbsp;EventSet,&nbsp;it&nbsp;is&nbsp;created&nbsp;and&nbsp;added.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;subscribe&nbsp;to.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;group<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group&nbsp;which&nbsp;is&nbsp;to&nbsp;be&nbsp;subscribed&nbsp;to.&nbsp;&nbsp;Subscription&nbsp;groups&nbsp;are&nbsp;called&nbsp;in<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ascending&nbsp;order.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;subscriber<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function&nbsp;or&nbsp;object&nbsp;that&nbsp;is&nbsp;to&nbsp;be&nbsp;subscribed&nbsp;to&nbsp;the&nbsp;Event.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;check&nbsp;the&nbsp;status&nbsp;of&nbsp;the&nbsp;Event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;and&nbsp;to&nbsp;disconnect&nbsp;(unsubscribe)&nbsp;from&nbsp;the&nbsp;Event.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;Event::Connection&nbsp;subscribeEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;Event::Group&nbsp;group,&nbsp;Event::Subscriber&nbsp;subscriber);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subscribes&nbsp;the&nbsp;named&nbsp;Event&nbsp;to&nbsp;a&nbsp;scripted&nbsp;funtion<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;subscribe&nbsp;to.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;subscriber_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;script&nbsp;funtion&nbsp;that&nbsp;is&nbsp;to&nbsp;be<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subscribed&nbsp;to&nbsp;the&nbsp;Event.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;check&nbsp;the&nbsp;status&nbsp;of&nbsp;the&nbsp;Event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;and&nbsp;to&nbsp;disconnect&nbsp;(unsubscribe)&nbsp;from&nbsp;the&nbsp;Event.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;Event::Connection&nbsp;subscribeScriptedEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;subscriber_name);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subscribes&nbsp;the&nbsp;specified&nbsp;group&nbsp;of&nbsp;the&nbsp;named&nbsp;Event&nbsp;to&nbsp;a&nbsp;scripted&nbsp;funtion.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;subscribe&nbsp;to.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;group<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group&nbsp;which&nbsp;is&nbsp;to&nbsp;be&nbsp;subscribed&nbsp;to.&nbsp;&nbsp;Subscription&nbsp;groups&nbsp;are&nbsp;called&nbsp;in<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ascending&nbsp;order.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;subscriber_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;containing&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;script&nbsp;funtion&nbsp;that&nbsp;is&nbsp;to&nbsp;be<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subscribed&nbsp;to&nbsp;the&nbsp;Event.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;check&nbsp;the&nbsp;status&nbsp;of&nbsp;the&nbsp;Event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;and&nbsp;to&nbsp;disconnect&nbsp;(unsubscribe)&nbsp;from&nbsp;the&nbsp;Event.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;Event::Connection&nbsp;subscribeScriptedEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;Event::Group&nbsp;group,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;subscriber_name);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires&nbsp;the&nbsp;named&nbsp;event&nbsp;passing&nbsp;the&nbsp;given&nbsp;EventArgs&nbsp;object.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;holding&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;that&nbsp;is&nbsp;to&nbsp;be&nbsp;fired<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(triggered)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;args<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;EventArgs&nbsp;(or&nbsp;derived)&nbsp;object&nbsp;that&nbsp;is&nbsp;to&nbsp;be&nbsp;bassed&nbsp;to&nbsp;each<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subscriber&nbsp;of&nbsp;the&nbsp;Event.&nbsp;&nbsp;Once&nbsp;all&nbsp;subscribers<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have&nbsp;been&nbsp;called&nbsp;the&nbsp;'handled'&nbsp;field&nbsp;of&nbsp;the&nbsp;event&nbsp;is&nbsp;updated<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appropriately.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;eventNamespace<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;describing&nbsp;the&nbsp;global&nbsp;event&nbsp;namespace&nbsp;prefix&nbsp;for&nbsp;this<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">virtual</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;fireEvent(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;EventArgs&amp;&nbsp;args,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;eventNamespace&nbsp;=&nbsp;"");<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;whether&nbsp;the&nbsp;EventSet&nbsp;is&nbsp;muted&nbsp;or&nbsp;not.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;true&nbsp;if&nbsp;the&nbsp;EventSet&nbsp;is&nbsp;muted.&nbsp;&nbsp;All&nbsp;requests&nbsp;to&nbsp;fire&nbsp;events&nbsp;will&nbsp;be&nbsp;ignored.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;false&nbsp;if&nbsp;the&nbsp;EventSet&nbsp;is&nbsp;not&nbsp;muted.&nbsp;&nbsp;All&nbsp;requests&nbsp;to&nbsp;fire&nbsp;events&nbsp;are&nbsp;processed&nbsp;as&nbsp;normal.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;&nbsp;&nbsp;&nbsp;isMuted(<span style="color: #0000FF; ">void</span>)&nbsp;<span style="color: #0000FF; ">const</span>;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;the&nbsp;mute&nbsp;state&nbsp;for&nbsp;this&nbsp;EventSet.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;setting<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;true&nbsp;if&nbsp;the&nbsp;EventSet&nbsp;is&nbsp;to&nbsp;be&nbsp;muted&nbsp;(no&nbsp;further&nbsp;event&nbsp;firing&nbsp;requests&nbsp;will&nbsp;be&nbsp;honoured&nbsp;until&nbsp;EventSet&nbsp;is&nbsp;unmuted).<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;false&nbsp;if&nbsp;the&nbsp;EventSet&nbsp;is&nbsp;not&nbsp;to&nbsp;be&nbsp;muted&nbsp;and&nbsp;all&nbsp;events&nbsp;should&nbsp;fired&nbsp;as&nbsp;requested.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;&nbsp;&nbsp;&nbsp;setMutedState(<span style="color: #0000FF; ">bool</span>&nbsp;setting);<br /><br /><br /><span style="color: #0000FF; ">protected</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;a&nbsp;pointer&nbsp;to&nbsp;the&nbsp;Event&nbsp;object&nbsp;with&nbsp;the&nbsp;given&nbsp;name,&nbsp;optionally<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adding&nbsp;such&nbsp;an&nbsp;Event&nbsp;object&nbsp;to&nbsp;the&nbsp;EventSet&nbsp;if&nbsp;it&nbsp;does&nbsp;not&nbsp;already<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exist.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;object&nbsp;holding&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Event&nbsp;to&nbsp;return.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\param&nbsp;autoAdd<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;true&nbsp;if&nbsp;an&nbsp;Event&nbsp;object&nbsp;named&nbsp;\a&nbsp;name&nbsp;should&nbsp;be&nbsp;added&nbsp;to&nbsp;the&nbsp;set<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;such&nbsp;an&nbsp;Event&nbsp;does&nbsp;not&nbsp;currently&nbsp;exist.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;false&nbsp;if&nbsp;no&nbsp;object&nbsp;should&nbsp;automatically&nbsp;be&nbsp;added&nbsp;to&nbsp;the&nbsp;set.&nbsp;&nbsp;In&nbsp;this<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case,&nbsp;if&nbsp;the&nbsp;Event&nbsp;does&nbsp;not&nbsp;already&nbsp;exist&nbsp;0&nbsp;will&nbsp;be&nbsp;returned.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;\return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pointer&nbsp;to&nbsp;the&nbsp;Event&nbsp;object&nbsp;in&nbsp;this&nbsp;EventSet&nbsp;with&nbsp;the&nbsp;specifed&nbsp;name.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Or&nbsp;0&nbsp;if&nbsp;such&nbsp;an&nbsp;Event&nbsp;does&nbsp;not&nbsp;exist&nbsp;and&nbsp;\a&nbsp;autoAdd&nbsp;was&nbsp;false.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;Event*&nbsp;getEventObject(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;autoAdd&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implementation&nbsp;event&nbsp;firing&nbsp;member<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;fireEvent_impl(<span style="color: #0000FF; ">const</span>&nbsp;String&amp;&nbsp;name,&nbsp;EventArgs&amp;&nbsp;args);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Do&nbsp;not&nbsp;allow&nbsp;copying,&nbsp;assignment,&nbsp;or&nbsp;any&nbsp;other&nbsp;usage&nbsp;than&nbsp;simple&nbsp;creation.</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;EventSet(EventSet&amp;)&nbsp;{}<br />&nbsp;&nbsp;&nbsp;&nbsp;EventSet&amp;&nbsp;<span style="color: #0000FF; ">operator</span>=(EventSet&amp;)&nbsp;{<span style="color: #0000FF; ">return</span>&nbsp;*<span style="color: #0000FF; ">this</span>;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;std::map&lt;String,&nbsp;Event*,&nbsp;String::FastLessCompare&gt;&nbsp;&nbsp;&nbsp;&nbsp;EventMap;<br />&nbsp;&nbsp;&nbsp;&nbsp;EventMap&nbsp;&nbsp;&nbsp;&nbsp;d_events;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;&nbsp;&nbsp;&nbsp;d_muted;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">!&lt;&nbsp;true&nbsp;if&nbsp;events&nbsp;for&nbsp;this&nbsp;EventSet&nbsp;have&nbsp;been&nbsp;muted.</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">************************************************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;stuff<br />&nbsp;&nbsp;&nbsp;&nbsp;************************************************************************</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;&nbsp;&nbsp;&nbsp;ConstBaseIterator&lt;EventMap&gt;&nbsp;Iterator;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">!<br />&nbsp;&nbsp;&nbsp;&nbsp;\brief<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;a&nbsp;EventSet::Iterator&nbsp;object&nbsp;to&nbsp;iterate&nbsp;over&nbsp;the&nbsp;events&nbsp;currently<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;added&nbsp;to&nbsp;the&nbsp;EventSet.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;getIterator(<span style="color: #0000FF; ">void</span>)&nbsp;<span style="color: #0000FF; ">const</span>;<br />};<br /><br />}</div>EventSet包含以下处理功能：1，添加事件；2，删除事件；3，激发一个事件；4，添加事件处理函数；5，查找事件。<br />这五种功能对应的函数分别为：<br />添加事件：addEvent<br />删除事件：removeEvent,removeAllEvent;<br />激发事件：fireEvent，fireEvent_impl<br />注册函数：subcirberEvent，subscribeScriptEvent；<br />查找事件：getEventObject，isEventPresent；<br />成员变量定义如下：<br /><div>EventSet(EventSet&amp;) {}</div><div>EventSet&amp; operator=(EventSet&amp;) {return *this;}</div><div>typedef std::map&lt;String, Event*, String::FastLessCompare&gt;<span style="white-space:pre">	</span>EventMap;</div><div>EventMap<span style="white-space:pre">	</span>d_events;</div><div>bool d_mute;<br />d_mute 决定这个事件集合是否相应，如果为false ，则这组事件不响应。<br />第一组从事件的添加，删除，查找<br /><div>void EventSet::addEvent(const String&amp; name);</div><div>void EventSet::removeEvent(cosnt String&amp; name);</div><div>void EventSet::removeAllEvent(void);</div><div>bool EventSet::isEventPresent(const String&amp; name);</div><div>Event* EvetnSet::getEventObject(const String&amp; name,bool auatoAdd);</div></div><div><span style="white-space: pre;">第二组事件处理函数的注册：<br /></span><div>Event::Connection EventSet::subscriberScriptedEvent(const String&amp; name,const String&amp; sbuscriber_name); Event::Connection EventSet::subscribeScriptedEvent(const String&amp; name,Event::Group group,const String&amp; subscriber_name); Event::Connection EventSet::subScriberEvent(const String&amp; name,Event::Subscriber subscriber); Event::Connection EventSet::subscribeEvent(const String&amp; name,Event::Group group,Event::Subscriber subscriber);<br />第三组事件的激发，对应处理函数的调用<br /><div>void EventSet::fireEvent(const String&amp; name,EventArgs&amp; args,const String&amp; eventNamespace);</div><div>void &nbsp;EventSet::fireEvent_impl(const String&amp; name,EventArgs&amp; args);</div><div></div><div></div></div></div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-13 12:40 <a href="http://www.cppblog.com/MyCBlog/articles/171225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>map constructor</title><link>http://www.cppblog.com/MyCBlog/articles/171214.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Fri, 13 Apr 2012 03:51:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171214.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171214.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171214.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171214.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;map&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />#include&nbsp;&lt;iterator&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;map&lt;<span style="color: #0000FF; ">int</span>,&nbsp;<span style="color: #0000FF; ">char</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&nbsp;M;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;m1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(2,'B'));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(3,'C'));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m1.insert(M::value_type(1,'A'));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M::iterator&nbsp;It&nbsp;=&nbsp;m1.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;"m1:"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;m1.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;(*It).first&nbsp;&lt;&lt;&nbsp;"&nbsp;-&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;(*It).second&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;copy&nbsp;constructor</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;m2(m1);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;m2.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;"m2:"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;m2.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;(*It).first&nbsp;&lt;&lt;&nbsp;"&nbsp;-&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;(*It).second&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;m3(m2.begin(),m2.end());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;m3.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;"m3:"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;m3.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;(*It).first&nbsp;&lt;&lt;&nbsp;"&nbsp;-&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;(*It).second&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-13 11:51 <a href="http://www.cppblog.com/MyCBlog/articles/171214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>set erase</title><link>http://www.cppblog.com/MyCBlog/articles/171143.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:45:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171143.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171143.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171143.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171143.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;print&nbsp;(<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&amp;&nbsp;s)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;::iterator&nbsp;It;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;It&nbsp;=&nbsp;s.begin();&nbsp;It&nbsp;!=&nbsp;s.end();&nbsp;It++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*It&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">--------------------------------------------&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{1,2,3,2,3,4,8,2,5,6};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&nbsp;s;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.insert(ary,ary+10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;erase&nbsp;'2'&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.erase(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;::iterator&nbsp;It;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;s.find(5);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;erase&nbsp;'5'&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.erase(It);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;s.find(4);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;erase&nbsp;from&nbsp;It&nbsp;to&nbsp;the&nbsp;end&nbsp;of&nbsp;set&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.erase(It,s.end());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:45 <a href="http://www.cppblog.com/MyCBlog/articles/171143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>set equal_ranges</title><link>http://www.cppblog.com/MyCBlog/articles/171142.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:42:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171142.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171142.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171142.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171142.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;c;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;c.insert(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;c.insert(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;c.insert(4);<br />&nbsp;&nbsp;&nbsp;&nbsp;c.insert(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;c.insert(11);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"lower_bound(3):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.lower_bound(3)&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"upper_bound(3):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.upper_bound(3)&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"equal_range(3):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.equal_range(3).first&nbsp;&lt;&lt;&nbsp;"&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.equal_range(3).second&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"lower_bound(5):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.lower_bound(5)&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"upper_bound(5):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.upper_bound(5)&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"equal_range(5):&nbsp;"&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.equal_range(5).first&nbsp;&lt;&lt;&nbsp;"&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;*c.equal_range(5).second&nbsp;&lt;&lt;&nbsp;endl;<br />cin.<span style="color: #0000FF; ">get</span>();<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:42 <a href="http://www.cppblog.com/MyCBlog/articles/171142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>set end</title><link>http://www.cppblog.com/MyCBlog/articles/171141.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:40:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171141.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171141.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171141.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171141.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br />#include&nbsp;&lt;iomanip&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">class</span>&nbsp;Member<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member(T&nbsp;l,&nbsp;T&nbsp;f)&nbsp;:&nbsp;last(l),&nbsp;first(f)&nbsp;{}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print()&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;const&nbsp;!!!</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout.setf(ios::left);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;setw(15)&nbsp;&lt;&lt;&nbsp;first.c_str()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;last&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;first,&nbsp;last;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;const&nbsp;!!!</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;&lt;&nbsp;(<span style="color: #0000FF; ">const</span>&nbsp;Member&amp;&nbsp;m1,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;Member&amp;&nbsp;m2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;(m1.last&nbsp;&lt;&nbsp;m2.last)&nbsp;?&nbsp;<span style="color: #0000FF; ">true</span>&nbsp;:&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;==&nbsp;(<span style="color: #0000FF; ">const</span>&nbsp;Member&amp;&nbsp;m1,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;Member&amp;&nbsp;m2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;(m1.last&nbsp;==&nbsp;m2.last)&nbsp;?&nbsp;<span style="color: #0000FF; ">true</span>&nbsp;:&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">===============================================</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;Member&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;M;<br />&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;<span style="color: #0000FF; ">set</span>&lt;M,&nbsp;less&lt;M&gt;&nbsp;&gt;&nbsp;S;<br />&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;m("Frost","Robert");<br />&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;s;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;s.insert(m);<br />&nbsp;&nbsp;&nbsp;&nbsp;s.insert(M("Smith","John"));<br />&nbsp;&nbsp;&nbsp;&nbsp;s.insert(M("Amstrong","Bill"));<br />&nbsp;&nbsp;&nbsp;&nbsp;s.insert(M("Bain","Linda"));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;S::iterator&nbsp;It&nbsp;=&nbsp;s.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;s.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(It++)-&gt;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:40 <a href="http://www.cppblog.com/MyCBlog/articles/171141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>set empty</title><link>http://www.cppblog.com/MyCBlog/articles/171140.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:39:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171140.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171140.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171140.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171140.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;print&nbsp;(<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&amp;&nbsp;s)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;::iterator&nbsp;It;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;It&nbsp;=&nbsp;s.begin();&nbsp;It&nbsp;!=&nbsp;s.end();&nbsp;It++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*It&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">--------------------------------------------</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{1,2,3,2,3,4,8,2,5,6};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&nbsp;s;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.insert(ary,ary+10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"set&nbsp;is&nbsp;"&nbsp;&lt;&lt;&nbsp;((s.empty())&nbsp;?&nbsp;""&nbsp;:&nbsp;"not&nbsp;")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;"empty"&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.clear();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"set&nbsp;is&nbsp;"&nbsp;&lt;&lt;&nbsp;((s.empty())&nbsp;?&nbsp;""&nbsp;:&nbsp;"not&nbsp;")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;"empty"&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:39 <a href="http://www.cppblog.com/MyCBlog/articles/171140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>set count</title><link>http://www.cppblog.com/MyCBlog/articles/171139.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:38:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171139.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171139.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171139.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171139.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;print&nbsp;(<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&amp;&nbsp;s)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;::iterator&nbsp;It;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;It&nbsp;=&nbsp;s.begin();&nbsp;It&nbsp;!=&nbsp;s.end();&nbsp;It++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*It&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">--------------------------------------------</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{1,2,3,2,3,4,8,2,5,6};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&nbsp;s;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.insert(ary,ary+10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(s);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"count&nbsp;of&nbsp;'2'&nbsp;(0&nbsp;or&nbsp;1)&nbsp;is&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n&nbsp;=&nbsp;s.count(100);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;n&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:38 <a href="http://www.cppblog.com/MyCBlog/articles/171139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list begin</title><link>http://www.cppblog.com/MyCBlog/articles/171138.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:28:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171138.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171138.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171138.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171138.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br />#include&nbsp;&lt;iterator&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{1,2,3,2,4,5,7,2,6,8};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s(ary,ary+10);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy(s.begin(),s.end(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ostream_iterator&lt;<span style="color: #0000FF; ">int</span>&gt;(cout,"&nbsp;"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:28 <a href="http://www.cppblog.com/MyCBlog/articles/171138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list constructor</title><link>http://www.cppblog.com/MyCBlog/articles/171137.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 13:24:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171137.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171137.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171137.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171137.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br />#include&nbsp;&lt;iterator&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{&nbsp;5,3,7,5,2,3,7,5,5,4&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;greater&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;&gt;&nbsp;s2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i=0;&nbsp;i&lt;<span style="color: #0000FF; ">sizeof</span>(ary)/<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">int</span>);&nbsp;i++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s1.insert(ary[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.insert(ary[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;::iterator&nbsp;It&nbsp;=&nbsp;s1.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,greater&lt;<span style="color: #0000FF; ">int</span>&gt;&gt;::iterator&nbsp;It2&nbsp;=&nbsp;s2.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"s1&nbsp;:&nbsp;";&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;s1.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*(It++)&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"s2&nbsp;:&nbsp;";&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It2&nbsp;!=&nbsp;s2.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*(It++)&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s3(ary,ary+3);<br />&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;s3.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"s3&nbsp;:&nbsp;";&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;s3.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*(It++)&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>,&nbsp;less&nbsp;&gt;&nbsp;s4(s1);<br />&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;s4.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"s4&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;s4.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*(It++)&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 21:24 <a href="http://www.cppblog.com/MyCBlog/articles/171137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list unique</title><link>http://www.cppblog.com/MyCBlog/articles/171115.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 09:56:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171115.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171115.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171115.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171115.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;iomanip&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">class</span>&nbsp;Member<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member(T&nbsp;f,&nbsp;T&nbsp;l)&nbsp;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first_n(f),&nbsp;last_n(l)&nbsp;{}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;last_n,&nbsp;first_n;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;for&nbsp;sort&nbsp;function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;&lt;&nbsp;(Member&amp;&nbsp;m1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member&amp;&nbsp;m2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;m1.last_n&nbsp;&lt;&nbsp;m2.last_n;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;for&nbsp;merge&nbsp;and&nbsp;unique&nbsp;functions&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;==&nbsp;(Member&amp;&nbsp;m1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member&amp;&nbsp;m2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;m1.last_n&nbsp;==&nbsp;m2.last_n;&nbsp;}<br />};<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">---------------------------------------</span><span style="color: #008000; "><br /></span>template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">void</span>&nbsp;Member&lt;T&gt;::print()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;cout.setf(ios::left);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;setw(15)&nbsp;&lt;&lt;&nbsp;last_n.c_str()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;first_n&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><br />typedef&nbsp;Member&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;M;<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">========================================</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;M&gt;&nbsp;li1;<br />&nbsp;&nbsp;&nbsp;&nbsp;li1.push_back(M("Linda","Smith"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li1.push_back(M("Robert","Frost"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li1.push_back(M("Alex","Amstrong"));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;M&gt;&nbsp;li2;<br />&nbsp;&nbsp;&nbsp;&nbsp;li2.push_back(M("Linda","Smith"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li2.push_back(M("John","Wood"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li2.push_back(M("Alex","Amstrong"));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li1.sort();<br />&nbsp;&nbsp;&nbsp;&nbsp;li2.sort();<br />&nbsp;&nbsp;&nbsp;&nbsp;li1.merge(li2);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;after&nbsp;sorting&nbsp;and&nbsp;mergin"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;M&gt;::iterator&nbsp;It&nbsp;=&nbsp;li1.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;li1.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(It++)-&gt;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;li1.unique();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"After&nbsp;li1.unique()"&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;li1.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;li1.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(It++)-&gt;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 17:56 <a href="http://www.cppblog.com/MyCBlog/articles/171115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list swap</title><link>http://www.cppblog.com/MyCBlog/articles/171114.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 09:54:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171114.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171114.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171114.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171114.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;numeric&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;print&nbsp;(list&lt;<span style="color: #0000FF; ">int</span>&gt;&amp;&nbsp;l)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;::iterator&nbsp;It&nbsp;=&nbsp;l.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;l.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*(It++)&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">===============================</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;li1(5),&nbsp;li2(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;iota(li1.begin(),li1.end(),1);<br />&nbsp;&nbsp;&nbsp;&nbsp;iota(li2.begin(),li2.end(),5);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;print(li1);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li2&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;print(li2);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li1.swap(li2);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;"After&nbsp;swapping:"&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;print(li1);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li2&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;print(li2);<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 17:54 <a href="http://www.cppblog.com/MyCBlog/articles/171114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list splice</title><link>http://www.cppblog.com/MyCBlog/articles/171113.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 09:48:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171113.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171113.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171113.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171113.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;iterator&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">class</span>&nbsp;Print<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;()&nbsp;(T&amp;&nbsp;t)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;t&nbsp;&lt;&lt;&nbsp;"&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">====================================</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;li1,&nbsp;li2,&nbsp;li3,&nbsp;li4;<br />&nbsp;&nbsp;&nbsp;&nbsp;Print&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;print;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i=0;&nbsp;i&lt;5;&nbsp;i++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li1.push_back(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li2.push_back(i+5);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li3.push_back(i+10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li4.push_back(i+15);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li1.begin(),li1.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li2&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li2.begin(),li2.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li3&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li3.begin(),li3.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li4&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li4.begin(),li4.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li1.splice(li1.end(),li2);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li1.begin(),li1.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li1.splice(li1.end(),li3,li3.begin(),li3.end());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"after&nbsp;li1.splice(li1.end(),li3,li3.begin(),li3.end());&nbsp;&nbsp;:\n&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li1.begin(),li1.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;::iterator&nbsp;It;<br />&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;find(li4.begin(),li4.end(),18);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li1.splice(li1.begin(),li4,It);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li1&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li1.begin(),li1.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"li4&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li4.begin(),li4.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 17:48 <a href="http://www.cppblog.com/MyCBlog/articles/171113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list sort2</title><link>http://www.cppblog.com/MyCBlog/articles/171111.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 09:41:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171111.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171111.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171111.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171111.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;iomanip&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">class</span>&nbsp;Member<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member(T&nbsp;f,&nbsp;T&nbsp;l)&nbsp;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first_n(f),&nbsp;last_n(l)&nbsp;{}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;last_n,&nbsp;first_n;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;for&nbsp;sort()&nbsp;list&nbsp;member&nbsp;function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;&lt;&nbsp;(Member&amp;&nbsp;m1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Member&amp;&nbsp;m2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;m1.last_n&nbsp;&lt;&nbsp;m2.last_n;&nbsp;}<br />};<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">---------------------------------------</span><span style="color: #008000; "><br /></span>template&nbsp;&lt;<span style="color: #0000FF; ">class</span>&nbsp;T&gt;<br /><span style="color: #0000FF; ">void</span>&nbsp;Member&lt;T&gt;::print()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;cout.setf(ios::left);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;setw(15)&nbsp;&lt;&lt;&nbsp;last_n.c_str()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;first_n&nbsp;&lt;&lt;&nbsp;endl;<br />}<br /><br />typedef&nbsp;Member&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;M;<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">========================================</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;M&gt;&nbsp;li;<br />&nbsp;&nbsp;&nbsp;&nbsp;li.push_back(M("Linda","Smith"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li.push_back(M("Frost","Robert"));<br />&nbsp;&nbsp;&nbsp;&nbsp;li.push_back(M("Alex","Amstrong"));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Before&nbsp;sorting&nbsp;by&nbsp;last&nbsp;name:\n"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;"============================"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;M&gt;::iterator&nbsp;It&nbsp;=&nbsp;li.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;li.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(It++)-&gt;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li.sort();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"After&nbsp;sorting&nbsp;by&nbsp;last&nbsp;name:\n"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;"============================"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;=&nbsp;li.begin();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;It&nbsp;!=&nbsp;li.end()&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(It++)-&gt;print();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 17:41 <a href="http://www.cppblog.com/MyCBlog/articles/171111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list sort</title><link>http://www.cppblog.com/MyCBlog/articles/171110.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 09:38:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171110.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171110.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171110.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171110.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;functional&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br />template&lt;typename&nbsp;T&gt;<br /><span style="color: #0000FF; ">class</span>&nbsp;Print<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;<span style="color: #0000FF; ">operator</span>()(T&amp;&nbsp;t)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;t&lt;&lt;"&nbsp;&nbsp;&nbsp;"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">-----------------------------</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ary[]&nbsp;=&nbsp;{3,2,5,7,3,6,7,2,4,5};<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;li(ary,ary+10);<br />&nbsp;&nbsp;&nbsp;&nbsp;Print&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;print;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Before&nbsp;sorting\nli&nbsp;:&nbsp;\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li.begin(),li.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li.sort(greater&lt;<span style="color: #0000FF; ">int</span>&gt;());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"After&nbsp;li.sort(greater())\nli&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li.begin(),li.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;li.sort(less&lt;<span style="color: #0000FF; ">int</span>&gt;());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"After&nbsp;li.sort(less())\nli&nbsp;:&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;for_each(li.begin(),li.end(),print);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 17:38 <a href="http://www.cppblog.com/MyCBlog/articles/171110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list size</title><link>http://www.cppblog.com/MyCBlog/articles/171062.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 04:04:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171062.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171062.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171062.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171062.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;iterator&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;l(5,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;copy(l.begin(),l.end(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ostream_iterator&lt;<span style="color: #0000FF; ">int</span>&gt;(cout,"&nbsp;"));<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Size&nbsp;of&nbsp;list&nbsp;=&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;l.size()&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;size&nbsp;=&nbsp;l.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i=0;&nbsp;i&lt;size;&nbsp;i++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;or&nbsp;while&nbsp;(&nbsp;!l.empty()&nbsp;)&nbsp;-&nbsp;safer</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l.pop_front();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Size&nbsp;of&nbsp;list&nbsp;=&nbsp;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;l.size()&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 12:04 <a href="http://www.cppblog.com/MyCBlog/articles/171062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list reverse</title><link>http://www.cppblog.com/MyCBlog/articles/171061.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 04:02:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171061.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171061.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171061.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171061.html</trackback:ping><description><![CDATA[<div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;list&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;numeric&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main&nbsp;()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;list&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;l(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;iota(l.begin(),l.end(),1);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;copy(l.begin(),l.end(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ostream_iterator&lt;<span style="color: #0000FF; ">int</span>&gt;(cout,"&nbsp;"));<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;l.reverse();<br />&nbsp;&nbsp;&nbsp;&nbsp;copy(l.begin(),l.end(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ostream_iterator&lt;<span style="color: #0000FF; ">int</span>&gt;(cout,"&nbsp;"));<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 12:02 <a href="http://www.cppblog.com/MyCBlog/articles/171061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>list resize</title><link>http://www.cppblog.com/MyCBlog/articles/171059.html</link><dc:creator>加文</dc:creator><author>加文</author><pubDate>Thu, 12 Apr 2012 04:00:00 GMT</pubDate><guid>http://www.cppblog.com/MyCBlog/articles/171059.html</guid><wfw:comment>http://www.cppblog.com/MyCBlog/comments/171059.html</wfw:comment><comments>http://www.cppblog.com/MyCBlog/articles/171059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MyCBlog/comments/commentRss/171059.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MyCBlog/services/trackbacks/171059.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><div>#include &lt;iostream&gt;</div><div>#include &lt;list&gt;</div><div>using namespace std;</div><div>int main ()&nbsp;</div><div>{</div><div>&nbsp; &nbsp; list&lt;int&gt; l(10);</div><div></div><div>&nbsp; &nbsp; cout &lt;&lt; "Size of list l = "</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt; l.size();</div><div></div><div>&nbsp; &nbsp; l.resize(100);</div><div>&nbsp; &nbsp; cout &lt;&lt; "After l.resize(100)" &lt;&lt; endl;</div><div>&nbsp; &nbsp; cout &lt;&lt; "Size of list l = "</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt; l.size();</div><div><span style="white-space:pre">	</span></div><div>&nbsp; &nbsp; l.resize(5);</div><div>&nbsp; &nbsp; cout &lt;&lt; "After l.resize(5)" &lt;&lt; endl;</div><div>&nbsp; &nbsp; cout &lt;&lt; "Size of list l = "</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt; l.size();</div><div><span style="white-space:pre">	</span>getchar();</div><div>&nbsp; &nbsp; return 0;</div><div>}</div></div><img src ="http://www.cppblog.com/MyCBlog/aggbug/171059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MyCBlog/" target="_blank">加文</a> 2012-04-12 12:00 <a href="http://www.cppblog.com/MyCBlog/articles/171059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>