﻿<?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++博客-VC++多一分钟学习，早一分钟提高-随笔分类-C++ List</title><link>http://www.cppblog.com/xkjy3000/category/19517.html</link><description>VC++、C++、Socket、DirectUI</description><language>zh-cn</language><lastBuildDate>Sun, 24 Jun 2012 17:45:27 GMT</lastBuildDate><pubDate>Sun, 24 Jun 2012 17:45:27 GMT</pubDate><ttl>60</ttl><item><title>C++中的list用法 </title><link>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180097.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Sun, 24 Jun 2012 17:06:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180097.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/180097.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/180097.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/180097.html</trackback:ping><description><![CDATA[<span style="color: #000000">#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iostream</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">list</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">numeric</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">algorithm</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;std;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">创建一个list容器的实例LISTINT&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">typedef&nbsp;list</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;LISTINT;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">创建一个list容器的实例LISTCHAR&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">typedef&nbsp;list</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;LISTCHAR;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(</span><span style="color: #0000ff">void</span><span style="color: #000000">)&nbsp;<br /><img id="Codehighlighter1_229_1742_Open_Image" onclick="this.style.display='none'; Codehighlighter1_229_1742_Open_Text.style.display='none'; Codehighlighter1_229_1742_Closed_Image.style.display='inline'; Codehighlighter1_229_1742_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_229_1742_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_229_1742_Closed_Text.style.display='none'; Codehighlighter1_229_1742_Open_Image.style.display='inline'; Codehighlighter1_229_1742_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_229_1742_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_229_1742_Open_Text"><span style="color: #000000">{&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--------------------------&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">用list容器处理整型数据&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--------------------------&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">用LISTINT创建一个名为listOne的list对象&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LISTINT&nbsp;listOne;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">声明i为迭代器&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LISTINT::iterator&nbsp;i;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从前面向listOne容器中添加数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;listOne.push_front&nbsp;(</span><span style="color: #000000">2</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;listOne.push_front&nbsp;(</span><span style="color: #000000">1</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从后面向listOne容器中添加数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;listOne.push_back&nbsp;(</span><span style="color: #000000">3</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;listOne.push_back&nbsp;(</span><span style="color: #000000">4</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从前向后显示listOne中的数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">listOne.begin()---&nbsp;listOne.end():</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;listOne.begin();&nbsp;i&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;listOne.end();&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">i)&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">i&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从后向后显示listOne中的数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LISTINT::reverse_iterator&nbsp;ir;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">listOne.rbegin()---listOne.rend():</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img id="Codehighlighter1_878_905_Open_Image" onclick="this.style.display='none'; Codehighlighter1_878_905_Open_Text.style.display='none'; Codehighlighter1_878_905_Closed_Image.style.display='inline'; Codehighlighter1_878_905_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_878_905_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_878_905_Closed_Text.style.display='none'; Codehighlighter1_878_905_Open_Image.style.display='inline'; Codehighlighter1_878_905_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(ir&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">listOne.rbegin();&nbsp;ir</span><span style="color: #000000">!=</span><span style="color: #000000">listOne.rend();ir</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_878_905_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_878_905_Open_Text"><span style="color: #000000">{&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">ir&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">使用STL的accumulate(累加)算法&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;accumulate(listOne.begin(),&nbsp;listOne.end(),</span><span style="color: #000000">0</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">Sum=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">result</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">------------------</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--------------------------&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">用list容器处理字符型数据&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--------------------------&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">用LISTCHAR创建一个名为listOne的list对象&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LISTCHAR&nbsp;listTwo;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">声明i为迭代器&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LISTCHAR::iterator&nbsp;j;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从前面向listTwo容器中添加数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;listTwo.push_front&nbsp;(</span><span style="color: #000000">'</span><span style="color: #000000">A</span><span style="color: #000000">'</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;listTwo.push_front&nbsp;(</span><span style="color: #000000">'</span><span style="color: #000000">B</span><span style="color: #000000">'</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从后面向listTwo容器中添加数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;listTwo.push_back&nbsp;(</span><span style="color: #000000">'</span><span style="color: #000000">x</span><span style="color: #000000">'</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;listTwo.push_back&nbsp;(</span><span style="color: #000000">'</span><span style="color: #000000">y</span><span style="color: #000000">'</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从前向后显示listTwo中的数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">listTwo.begin()---listTwo.end():</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;listTwo.begin();&nbsp;j&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;listTwo.end();&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">j)&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">(</span><span style="color: #000000">*</span><span style="color: #000000">j)&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">使用STL的max_element算法求listTwo中的最大元素并显示&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">max_element(listTwo.begin(),listTwo.end());&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;maximum&nbsp;element&nbsp;in&nbsp;listTwo&nbsp;is:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #0000ff">char</span><span style="color: #000000">(</span><span style="color: #000000">*</span><span style="color: #000000">j)</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iostream</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">list</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;std;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" />typedef&nbsp;list</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;INTLIST;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">从前向后显示list队列的全部元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;put_list(INTLIST&nbsp;list,&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">name)&nbsp;<br /><img id="Codehighlighter1_1898_2075_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1898_2075_Open_Text.style.display='none'; Codehighlighter1_1898_2075_Closed_Image.style.display='inline'; Codehighlighter1_1898_2075_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1898_2075_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1898_2075_Closed_Text.style.display='none'; Codehighlighter1_1898_2075_Open_Image.style.display='inline'; Codehighlighter1_1898_2075_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1898_2075_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1898_2075_Open_Text"><span style="color: #000000">{&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;INTLIST::iterator&nbsp;plist;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;contents&nbsp;of&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(plist&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;list.begin();&nbsp;plist&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;list.end();&nbsp;plist</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">plist&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">测试list容器的功能&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(</span><span style="color: #0000ff">void</span><span style="color: #000000">)&nbsp;<br /><img id="Codehighlighter1_2111_3837_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2111_3837_Open_Text.style.display='none'; Codehighlighter1_2111_3837_Closed_Image.style.display='inline'; Codehighlighter1_2111_3837_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_2111_3837_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2111_3837_Closed_Text.style.display='none'; Codehighlighter1_2111_3837_Open_Image.style.display='inline'; Codehighlighter1_2111_3837_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2111_3837_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2111_3837_Open_Text"><span style="color: #000000">{&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">list1对象初始为空&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;INTLIST&nbsp;list1;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">list2对象最初有10个值为6的元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;INTLIST&nbsp;list2(</span><span style="color: #000000">10</span><span style="color: #000000">,</span><span style="color: #000000">6</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">list3对象最初有3个值为6的元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;INTLIST&nbsp;list3(list2.begin(),</span><span style="color: #000000">--</span><span style="color: #000000">list2.end());&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">声明一个名为i的双向迭代器&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;INTLIST::iterator&nbsp;i;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从前向后显示各list对象的元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list2,</span><span style="color: #000000">"</span><span style="color: #000000">list2</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list3,</span><span style="color: #000000">"</span><span style="color: #000000">list3</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从list1序列后面添加两个元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.push_back(</span><span style="color: #000000">2</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;list1.push_back(</span><span style="color: #000000">4</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.push_back(2)&nbsp;and&nbsp;list1.push_back(4):</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从list1序列前面添加两个元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.push_front(</span><span style="color: #000000">5</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;list1.push_front(</span><span style="color: #000000">7</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.push_front(5)&nbsp;and&nbsp;list1.push_front(7):</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在list1序列中间插入数据&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.insert(</span><span style="color: #000000">++</span><span style="color: #000000">list1.begin(),</span><span style="color: #000000">3</span><span style="color: #000000">,</span><span style="color: #000000">9</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.insert(list1.begin()+1,3,9):</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">测试引用类函数&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.front()=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">list1.front()</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.back()=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">list1.back()</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从list1序列的前后各移去一个元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.pop_front();&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;list1.pop_back();&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.pop_front()&nbsp;and&nbsp;list1.pop_back():</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">清除list1中的第2个元素&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.erase(</span><span style="color: #000000">++</span><span style="color: #000000">list1.begin());&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.erase(++list1.begin()):</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">对list2赋值并显示&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list2.assign(</span><span style="color: #000000">8</span><span style="color: #000000">,</span><span style="color: #000000">1</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list2.assign(8,1):</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list2,</span><span style="color: #000000">"</span><span style="color: #000000">list2</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">显示序列的状态信息&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.max_size():&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">list1.max_size()</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.size():&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">list1.size()</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1.empty():&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">list1.empty()</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">list序列容器的运算&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list3,</span><span style="color: #000000">"</span><span style="color: #000000">list3</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1&gt;list3:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">(list1</span><span style="color: #000000">&gt;</span><span style="color: #000000">list3)</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">list1&lt;list3:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">(list1</span><span style="color: #000000">&lt;</span><span style="color: #000000">list3)</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">对list1容器排序&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.sort();&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">结合处理&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list1.splice(</span><span style="color: #000000">++</span><span style="color: #000000">list1.begin(),&nbsp;list3);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list1,</span><span style="color: #000000">"</span><span style="color: #000000">list1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;put_list(list3,</span><span style="color: #000000">"</span><span style="color: #000000">list3</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><img src ="http://www.cppblog.com/xkjy3000/aggbug/180097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-06-25 01:06 <a href="http://www.cppblog.com/xkjy3000/archive/2012/06/25/180097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Lists（链表）</title><link>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180096.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Sun, 24 Jun 2012 17:05:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180096.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/180096.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/180096.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/180096.html</trackback:ping><description><![CDATA[<p><strong>C++ Lists（链表）</strong><br /><br />Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除，但是随机访问却比较慢.</p>
<p><br />assign() 给list赋值 <br />back() 返回最后一个元素 <br />begin() 返回指向第一个元素的迭代器 <br />clear() 删除所有元素 <br />empty() 如果list是空的则返回true <br />end() 返回末尾的迭代器 <br />erase() 删除一个元素 <br />front() 返回第一个元素 <br />get_allocator() 返回list的配置器 <br />insert() 插入一个元素到list中 <br />max_size() 返回list能容纳的最大元素数量 <br />merge() 合并两个list <br />pop_back() 删除最后一个元素 <br />pop_front() 删除第一个元素 <br />push_back() 在list的末尾添加一个元素 <br />push_front() 在list的头部添加一个元素 <br />rbegin() 返回指向第一个元素的逆向迭代器 <br />remove() 从list删除元素 <br />remove_if() 按指定条件删除元素 <br />rend() 指向list末尾的逆向迭代器 <br />resize() 改变list的大小 <br />reverse() 把list的元素倒转 <br />size() 返回list中的元素个数 <br />sort() 给list排序 <br />splice() 合并两个list <br />swap() 交换两个list <br />unique() 删除list中重复的元素</p>
<p><strong>附List用法实例：</strong></p>
<p>#include &lt;iostream&gt;<br />#include &lt;list&gt;<br />#include &lt;numeric&gt;<br />#include &lt;algorithm&gt;</p>
<p>using namespace std;</p>
<p>//创建一个list容器的实例LISTINT<br />typedef list&lt;int&gt; LISTINT;</p>
<p>//创建一个list容器的实例LISTCHAR<br />typedef list&lt;char&gt; LISTCHAR;</p>
<p>void main(void)<br />{<br />&nbsp;&nbsp;&nbsp; //--------------------------<br />&nbsp;&nbsp;&nbsp; //用list容器处理整型数据<br />&nbsp;&nbsp;&nbsp; //--------------------------<br />&nbsp;&nbsp;&nbsp; //用LISTINT创建一个名为listOne的list对象<br />&nbsp;&nbsp;&nbsp; LISTINT listOne;<br />&nbsp;&nbsp;&nbsp; //声明i为迭代器<br />&nbsp;&nbsp;&nbsp; LISTINT::iterator i;</p>
<p>&nbsp;&nbsp;&nbsp; //从前面向listOne容器中添加数据<br />&nbsp;&nbsp;&nbsp; listOne.push_front (2);<br />&nbsp;&nbsp;&nbsp; listOne.push_front (1);</p>
<p>&nbsp;&nbsp;&nbsp; //从后面向listOne容器中添加数据<br />&nbsp;&nbsp;&nbsp; listOne.push_back (3);<br />&nbsp;&nbsp;&nbsp; listOne.push_back (4);</p>
<p>&nbsp;&nbsp;&nbsp; //从前向后显示listOne中的数据<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;"listOne.begin()--- listOne.end():"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; for (i = listOne.begin(); i != listOne.end(); ++i)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; *i &lt;&lt; " ";<br />&nbsp;&nbsp;&nbsp; cout &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //从后向后显示listOne中的数据<br />LISTINT::reverse_iterator ir;<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;"listOne.rbegin()---listOne.rend():"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; *ir &lt;&lt; " ";<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; cout &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //使用STL的accumulate(累加)算法<br />&nbsp;&nbsp;&nbsp; int result = accumulate(listOne.begin(), listOne.end(),0);<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;"Sum="&lt;&lt;result&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;"------------------"&lt;&lt;endl;</p>
<p>&nbsp;&nbsp;&nbsp; //--------------------------<br />&nbsp;&nbsp;&nbsp; //用list容器处理字符型数据<br />&nbsp;&nbsp;&nbsp; //--------------------------</p>
<p>&nbsp;&nbsp;&nbsp; //用LISTCHAR创建一个名为listOne的list对象<br />&nbsp;&nbsp;&nbsp; LISTCHAR listTwo;<br />&nbsp;&nbsp;&nbsp; //声明i为迭代器<br />&nbsp;&nbsp;&nbsp; LISTCHAR::iterator j;</p>
<p>&nbsp;&nbsp;&nbsp; //从前面向listTwo容器中添加数据<br />&nbsp;&nbsp;&nbsp; listTwo.push_front ('A');<br />&nbsp;&nbsp;&nbsp; listTwo.push_front ('B');</p>
<p>&nbsp;&nbsp;&nbsp; //从后面向listTwo容器中添加数据<br />&nbsp;&nbsp;&nbsp; listTwo.push_back ('x');<br />&nbsp;&nbsp;&nbsp; listTwo.push_back ('y');</p>
<p>&nbsp;&nbsp;&nbsp; //从前向后显示listTwo中的数据<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;"listTwo.begin()---listTwo.end():"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; for (j = listTwo.begin(); j != listTwo.end(); ++j)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; char(*j) &lt;&lt; " ";<br />&nbsp;&nbsp;&nbsp; cout &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //使用STL的max_element算法求listTwo中的最大元素并显示<br />&nbsp;&nbsp;&nbsp; j=max_element(listTwo.begin(),listTwo.end());<br />&nbsp;&nbsp;&nbsp; cout &lt;&lt; "The maximum element in listTwo is: "&lt;&lt;char(*j)&lt;&lt;endl;<br />}</p>
<p>#include &lt;iostream&gt;<br />#include &lt;list&gt;</p>
<p>using namespace std;<br />typedef list&lt;int&gt; INTLIST;</p>
<p>//从前向后显示list队列的全部元素<br />void put_list(INTLIST list, char *name)<br />{<br />&nbsp;&nbsp;&nbsp; INTLIST::iterator plist;</p>
<p>&nbsp;&nbsp;&nbsp; cout &lt;&lt; "The contents of " &lt;&lt; name &lt;&lt; " : ";<br />&nbsp;&nbsp;&nbsp; for(plist = list.begin(); plist != list.end(); plist++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; *plist &lt;&lt; " ";<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;<br />}</p>
<p>//测试list容器的功能<br />void main(void)<br />{<br />//list1对象初始为空<br />&nbsp;&nbsp;&nbsp; INTLIST list1;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //list2对象最初有10个值为6的元素 <br />&nbsp;&nbsp;&nbsp; INTLIST list2(10,6); <br />&nbsp;&nbsp;&nbsp; //list3对象最初有3个值为6的元素 <br />&nbsp;&nbsp;&nbsp; INTLIST list3(list2.begin(),--list2.end()); </p>
<p>&nbsp;&nbsp;&nbsp; //声明一个名为i的双向迭代器<br />&nbsp;&nbsp;&nbsp; INTLIST::iterator i;</p>
<p>&nbsp;&nbsp;&nbsp; //从前向后显示各list对象的元素<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");<br />&nbsp;&nbsp;&nbsp; put_list(list2,"list2");<br />&nbsp;&nbsp;&nbsp; put_list(list3,"list3");<br />&nbsp;&nbsp;&nbsp; <br />//从list1序列后面添加两个元素<br />list1.push_back(2);<br />list1.push_back(4);<br />cout&lt;&lt;"list1.push_back(2) and list1.push_back(4):"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");</p>
<p>//从list1序列前面添加两个元素<br />list1.push_front(5);<br />list1.push_front(7);<br />cout&lt;&lt;"list1.push_front(5) and list1.push_front(7):"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");</p>
<p>//在list1序列中间插入数据<br />list1.insert(++list1.begin(),3,9);<br />cout&lt;&lt;"list1.insert(list1.begin()+1,3,9):"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");</p>
<p>//测试引用类函数<br />cout&lt;&lt;"list1.front()="&lt;&lt;list1.front()&lt;&lt;endl;<br />cout&lt;&lt;"list1.back()="&lt;&lt;list1.back()&lt;&lt;endl;</p>
<p>//从list1序列的前后各移去一个元素<br />list1.pop_front();<br />list1.pop_back();<br />cout&lt;&lt;"list1.pop_front() and list1.pop_back():"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");</p>
<p>//清除list1中的第2个元素<br />list1.erase(++list1.begin());<br />cout&lt;&lt;"list1.erase(++list1.begin()):"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");</p>
<p>//对list2赋值并显示<br />list2.assign(8,1);<br />cout&lt;&lt;"list2.assign(8,1):"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; put_list(list2,"list2");</p>
<p>//显示序列的状态信息<br />cout&lt;&lt;"list1.max_size(): "&lt;&lt;list1.max_size()&lt;&lt;endl;<br />cout&lt;&lt;"list1.size(): "&lt;&lt;list1.size()&lt;&lt;endl;<br />cout&lt;&lt;"list1.empty(): "&lt;&lt;list1.empty()&lt;&lt;endl;</p>
<p>//list序列容器的运算<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");<br />&nbsp;&nbsp;&nbsp; put_list(list3,"list3");<br />cout&lt;&lt;"list1&gt;list3: "&lt;&lt;(list1&gt;list3)&lt;&lt;endl;<br />cout&lt;&lt;"list1&lt;list3: "&lt;&lt;(list1&lt;list3)&lt;&lt;endl;</p>
<p>//对list1容器排序<br />list1.sort();<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");<br />&nbsp;&nbsp;&nbsp; <br />//结合处理<br />list1.splice(++list1.begin(), list3);<br />&nbsp;&nbsp;&nbsp; put_list(list1,"list1");<br />&nbsp;&nbsp;&nbsp; put_list(list3,"list3"); <br />}</p>
<p><strong>补充：STL标准函数find进行vector 、list链表查找</strong></p>
<p>#include &lt;vector&gt;<br />#include &lt;algorithm&gt;<br />#include &lt;iostream&gt;</p>
<p>class example<br />{<br />public:<br />example(int val)<br />{<br />i = val;<br />}</p>
<p>bool operator==(example const &amp; rhs)<br />{<br />return (i == rhs.i) ? true : false;<br />}</p>
<p>private:<br />int i;<br />};<br />using namespace std;<br />int main(void)<br />{<br />vector&lt;example&gt; ve;<br />ve.push_back(1);<br />vector&lt;example&gt;::iterator it;<br />example elem(1);<br />it = find(ve.begin(), ve.end(), elem);<br />cout&lt;&lt;boolalpha&lt;&lt;(*it == elem);<br />}</p><img src ="http://www.cppblog.com/xkjy3000/aggbug/180096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-06-25 01:05 <a href="http://www.cppblog.com/xkjy3000/archive/2012/06/25/180096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ List用法</title><link>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180093.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Sun, 24 Jun 2012 17:01:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180093.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/180093.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/180093.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/180093.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: #include&nbsp;&lt;iostream&gt;&nbsp;#include&nbsp;&lt;list&gt;&nbsp;#include&nbsp;&lt;numeric&gt;&nbsp;#include&nbsp;&lt;algorithm&gt;&nbsp;using&nbsp;namespace&nbsp;std;&nbsp;//创建一个list容器的实例LISTINT&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/xkjy3000/archive/2012/06/25/180093.html'>阅读全文</a><img src ="http://www.cppblog.com/xkjy3000/aggbug/180093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-06-25 01:01 <a href="http://www.cppblog.com/xkjy3000/archive/2012/06/25/180093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>标准模板库(STL)学习---List容器 ( 转载 ) </title><link>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180091.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Sun, 24 Jun 2012 16:56:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180091.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/180091.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/06/25/180091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/180091.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/180091.html</trackback:ping><description><![CDATA[<div style="padding-bottom: 5px; line-height: 21px; overflow-x: auto; overflow-y: auto; background-color: rgb(245,245,245); padding-left: 5px; padding-right: 5px; font-family: 'Courier New'; font-size: 13px; border-left-color: rgb(204,204,204); word-break: break-all; padding-top: 5px" class="cnblogs_code">
<div><font color="#800080">定义一个list<br /><br />　　我们可以象这样来定义一个STL的list：&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>#include ＜string＞<br />#include ＜list＞<br />int main (void)&nbsp;<br />{<br />　list＜string＞ Milkshakes;<br />　return 0;<br />}</td></tr></tbody></table><br />　　这就行了，你已经定义了一个list。简单吗？list＜string＞ Milkshakes这句是你声明了list＜string＞模板类 的一个实例，然后就是实例化该类的一个对象。但是我们别急着做这个。在这一步其实你只需要知道你定义了 一个字符串的list。你需要包含提供STL list类的头文件。我用gcc 2.7.2在我的Linux上编译这个测试程序，例如：&nbsp;<br /><br />　　g++ test1.cpp -o test1 注意iostream.h这个头文件已经被STL的头文件放弃了。这就是为什么这个例子中没有它的原因。&nbsp;<br /><br />　　现在我们有了一个list，我们可以看实使用它来装东西了。我们将把一个字符串加到这个list里。有一个非常 重要的东西叫做list的值类型。值类型就是list中的对象的类型。在这个例子中,这个list的值类型就是字符串,string ， 这是因为这个list用来放字符串。&nbsp;<br /><br />　　使用list的成员函数push_back和push_front插入一个元素到list中：<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>#include ＜string＞<br />#include ＜list＞<br /><br />int main (void)&nbsp;<br />{<br />　list＜string＞ Milkshakes;<br />　Milkshakes.push_back("Chocolate");<br />　Milkshakes.push_back("Strawberry");<br />　Milkshakes.push_front("Lime");<br />　Milkshakes.push_front("Vanilla");<br />　return 0;<br />}</td></tr></tbody></table><br />　　我们现在有个4个字符串在list中。list的成员函数push_back()把一个对象放到一个list的后面，而 push_front()把对象放到前面。我通常把一些错误信息push_back()到一个list中去，然后push_front()一个标题到list中， 这样它就会在这个错误消息以前打印它了。<br /><br />The list member function empty()list的成员函数empty()<br /><br />　　知道一个list是否为空很重要。如果list为空，empty()这个成员函数返回真。 我通常会这样使用它。通篇程序我都用push_back()来把错误消息放到list中去。然后，通过调用empty() 我就可以说出这个程序是否报告了错误。如果我定义了一个list来放信息，一个放警告，一个放严重错误， 我就可以通过使用empty()轻易的说出到底有那种类型的错误发生了。&nbsp;<br /><br />　　我可以整理这些list，然后在打印它们之前，用标题来整理它们，或者把它们排序成类。&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| Using a list to track and report program messages and status&nbsp;<br />*/<br />#include ＜iostream.h＞<br />#include ＜string＞<br />#include ＜list＞<br />int main (void)&nbsp;<br />{<br />　#define OK 0&nbsp;<br />　#define INFO 1<br />　#define WARNING 2<br />　int return_code;<br />　list＜string＞ InfoMessages;<br />　list＜string＞ WarningMessages;<br /><br />　// during a program these messages are loaded at various points<br />　InfoMessages.push_back("Info: Program started");<br />　// do work...<br />　WarningMessages.push_back("Warning: No Customer records have been found");<br />　// do work...<br /><br />　return_code = OK;&nbsp;<br /><br />　if (!InfoMessages.empty()) {<br />　　// there were info messages<br />　　InfoMessages.push_front("Informational Messages:");<br />　　// ... print the info messages list, we'll see how later<br />　　return_code = INFO;<br />　}<br /><br />　if (!WarningMessages.empty()) {<br />　　// there were warning messages<br />　　WarningMessages.push_front("Warning Messages:");<br />　　// ... print the warning messages list, we'll see how later<br />　　return_code = WARNING;&nbsp;<br />　}<br /><br />　// If there were no messages say so.<br />　if (InfoMessages.empty() &amp;&amp; WarningMessages.empty()) {<br />　　cout ＜＜ "There were no messages " ＜＜ endl;<br />　}<br /><br />　return return_code;<br />}</td></tr></tbody></table><br /></font></div><strong>用for循环来处理list中的元素</strong><br /><br />　　我们想要遍历一个list，比如打印一个中的所有对象来看看list上不同操作的结果。要一个元素一个元素的遍历一个list， 我们可以这样做：&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| How to print the contents of a simple STL list. Whew!&nbsp;<br />*/<br />#include ＜iostream.h＞<br />#include ＜string＞<br />#include ＜list＞<br /><br />int main (void)&nbsp;<br />{<br />　list＜string＞ Milkshakes;<br />　list＜string＞::iterator MilkshakeIterator;<br /><br />　Milkshakes.push_back("Chocolate");<br />　Milkshakes.push_back("Strawberry");<br />　Milkshakes.push_front("Lime");<br />　Milkshakes.push_front("Vanilla");<br /><br />　// print the milkshakes<br />　Milkshakes.push_front("The Milkshake Menu");<br />　Milkshakes.push_back("*** Thats the end ***");<br />　for (MilkshakeIterator=Milkshakes.begin(); MilkshakeIterator!=Milkshakes.end(); ++MilkshakeIterator)&nbsp;<br />　{<br />　　// dereference the iterator to get the element<br />　　cout ＜＜ *MilkshakeIterator ＜＜ endl;<br />　}&nbsp;<br />}</td></tr></tbody></table><br />　　这个程序定义了一个iterator，MilkshakeIterator。我们把它指向了这个list的第一个元素。 这可以调用Milkshakes.begin()来作到，它会返回一个指向list开头的iterator。然后我们把它和Milkshakes.end()的 返回值来做比较，当我们到了那儿的时候就停下来。&nbsp;<br /><br />　　容器的end()函数会返回一个指向容器的最后一个位置的iterator。当我们到了那里，就停止操作。 我们不能不理容器的end()函数的返回值。我们仅知道它意味着已经处理到了这个容器的末尾，应该停止处理了。 所有的STL容器都要这样做。&nbsp;<br /><br />　　在上面的例子中，每一次执行for循环，我们就重复引用iterator来得到我们打印的字符串。&nbsp;<br /><br />　　在STL编程中，我们在每个算法中都使用一个或多个iterator。我们使用它们来存取容器中的对象。 要存取一个给定的对象，我们把一个iterator指向它，然后间接引用这个iterator。&nbsp;<br /><br />　　这个list容器，就象你所想的，它不支持在iterator加一个数来指向隔一个的对象。 就是说，我们不能用Milkshakes.begin()+2来指向list中的第三个对象，因为STL的list是以双链的list来实现的， 它不支持随机存取。vector和deque(向量和双端队列)和一些其他的STL的容器可以支持随机存取。&nbsp;<br /><br />　　上面的程序打印出了list中的内容。任何人读了它都能马上明白它是怎麽工作的。它使用标准的iterator和标准 的list容器。没有多少程序员依赖它里面装的东西， 仅仅是标准的C++。这是一个向前的重要步骤。这个例子使用STL使我们的软件更加标准。&nbsp;<br /><br />　　<strong>用STL的通用算法for_each来处理list中的元素</strong><br /><br />　　使用STL list和 iterator，我们要初始化、比较和给iterator增量来遍历这个容器。STL通用的for_each 算法能够减轻我们的工作。&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| How to print a simple STL list MkII<br />*/<br />#include ＜iostream.h＞<br />#include ＜string＞<br />#include ＜list＞<br />#include ＜algorithm＞<br /><br />PrintIt (string&amp; StringToPrint) {<br />　cout ＜＜ StringToPrint ＜＜ endl;<br />}<br /><br />int main (void) {<br />　list＜string＞ FruitAndVegetables;<br />　FruitAndVegetables.push_back("carrot");<br />　FruitAndVegetables.push_back("pumpkin");<br />　FruitAndVegetables.push_back("potato");<br />　FruitAndVegetables.push_front("apple");<br />　FruitAndVegetables.push_front("pineapple");<br /><br />　for_each (FruitAndVegetables.begin(), FruitAndVegetables.end(), PrintIt);<br />}</td></tr></tbody></table><br />　　在这个程序中我们使用STL的通用算法for_each()来遍历一个iterator的范围，然后调用PrintIt()来处理每个对象。 我们不需要初始化、比较和给iterator增量。for_each()为我们漂亮的完成了这些工作。我们执行于对象上的 操作被很好的打包在这个函数以外了，我们不用再做那样的循环了，我们的代码更加清晰了。&nbsp;<br /><br />
<p style="text-indent: 0px; margin: 5px auto">　　for_each算法引用了iterator范围的概念，这是一个由起始iterator和一个末尾iterator指出的范围。 起始iterator指出操作由哪里开始，末尾iterator指明到哪结束，但是它不包括在这个范围内。</p>
<p style="text-indent: 0px; margin: 5px auto">&nbsp;<strong>用STL的通用算法count()来统计list中的元素个数</strong></p><br />　　STL的通用算法count()和count_it()用来给容器中的对象记数。就象for_each()一样，count()和count_if() 算法也是在iterator范围内来做的。&nbsp;<br /><br />　　让我们在一个学生测验成绩的list中来数一数满分的个数。这是一个整型的List。&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| How to count objects in an STL list<br />*/<br />#include ＜list＞<br />#include ＜algorithm＞<br />#<br />int main (void)&nbsp;<br />{<br />　list＜int＞ Scores;<br />　#<br />　Scores.push_back(100); Scores.push_back(80);<br />　Scores.push_back(45); Scores.push_back(75);<br />　Scores.push_back(99); Scores.push_back(100);<br />　#<br />　int NumberOf100Scores(0);&nbsp;<br />　count (Scores.begin(), Scores.end(), 100, NumberOf100Scores);<br />　#<br />　cout ＜＜ "There were " ＜＜ NumberOf100Scores ＜＜ " scores of 100" ＜＜ endl;<br />}</td></tr></tbody></table><br />　　count()算法统计等于某个值的对象的个数。上面的例子它检查list中的每个整型对象是不是100。每次容器中的对象等于100，它就给NumberOf100Scores加1。这是程序的输出：&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>There were 2 scores of 100</td></tr></tbody></table><br />　　<strong>用STL的通用算法count_if()来统计list中的元素个数</strong><br /><br />　　count_if()是count()的一个更有趣的版本。他采用了STL的一个新组件，函数对象。count_if() 带一个函数对象的参数。函数对象是一个至少带有一个operator()方法的类。有些STL算法作为参数接收 函数对象并调用这个函数对象的operator()方法。&nbsp;<br /><br />　　函数对象被约定为STL算法调用operator时返回true或false。它们根据这个来判定这个函数。举个例子会 说的更清楚些。count_if()通过传递一个函数对象来作出比count()更加复杂的评估以确定一个对象是否应该被 记数。在这个例子里我们将数一数牙刷的销售数量。我们将提交包含四个字符的销售码和产品说明的销售记录。&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| Using a function object to help count things<br />*/<br />#include ＜string＞<br />#include ＜list＞<br />#include ＜algorithm＞<br /><br />const string ToothbrushCode("0003");<br /><br />class IsAToothbrush&nbsp;<br />{<br />　public:&nbsp;<br />　　bool operator() ( string&amp; SalesRecord )&nbsp;<br />　　{<br />　　　return SalesRecord.substr(0,4)==ToothbrushCode;<br />　　}&nbsp;<br />};<br /><br />int main (void)&nbsp;<br />{<br />　list＜string＞ SalesRecords;<br /><br />　SalesRecords.push_back("0001 Soap");<br />　SalesRecords.push_back("0002 Shampoo");<br />　SalesRecords.push_back("0003 Toothbrush");<br />　SalesRecords.push_back("0004 Toothpaste");<br />　SalesRecords.push_back("0003 Toothbrush");<br /><br />　int NumberOfToothbrushes(0);&nbsp;<br />　count_if (SalesRecords.begin(), SalesRecords.end(),&nbsp;<br />　IsAToothbrush(), NumberOfToothbrushes);<br /><br />　cout ＜＜ "There were "&nbsp;<br />　＜＜ NumberOfToothbrushes&nbsp;<br />　＜＜ " toothbrushes sold" ＜＜ endl;<br />}</td></tr></tbody></table><br />　　这是这个程序的输出：&nbsp;<br /><br />　　There were 2 toothbrushes sold 这个程序是这样工作的：定义一个函数对象类IsAToothbrush，这个类的对象能判断出卖出的是否是牙刷 。如果这个记录是卖出牙刷的记录的话，函数调用operator()返回一个true，否则返回false。&nbsp;<br /><br />　　count_if()算法由第一和第二两个iterator参数指出的范围来处理容器对象。它将对每个 IsAToothbrush()返回true的容器中的对象增加NumberOfToothbrushes的值。&nbsp;<br /><br />　　最后的结果是NumberOfToothbrushes这个变量保存了产品代码域为"0003"的记录的个数，也就是牙刷的个数。&nbsp;<br /><br />　　注意count_if()的第三个参数IsAToothbrush()，它是由它的构造函数临时构造的一个对象。你可以把IsAToothbrush类的一个临时对象 传递给count_if()函数。count_if()将对该容器的每个对象调用这个函数。&nbsp;<br />
<p style="text-indent: 0px; margin: 5px auto">&nbsp;</p><strong>使用count_if()的一个更加复杂的函数对象</strong><br /><br />　　我们可以更进一步的研究一下函数对象。假设我们需要传递更多的信息给一个函数对象。我们不能通过 调用operator来作到这点，因为必须定义为一个list的中的对象的类型。 然而我们通过为IsAToothbrush指出一个非缺省的构造函数就可以用任何我们所需要的信息来初始化它了。 例如，我们可能需要每个牙刷有一个不定的代码。我们可以把这个信息加到下面的函数对象中：&nbsp;<br /><br />
<table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center">
<tbody>
<tr>
<td>/*<br />|| Using a more complex function object<br />*/<br />#include ＜iostream.h＞<br />#include ＜string＞<br />#include ＜list＞<br />#include ＜algorithm＞<br /><br />class IsAToothbrush&nbsp;<br />{<br />　public:<br />　　IsAToothbrush(string&amp; InToothbrushCode) :&nbsp;<br />　　ToothbrushCode(InToothbrushCode) {}<br />　　bool operator() (string&amp; SalesRecord)&nbsp;<br />　　{<br />　　　return SalesRecord.substr(0,4)==ToothbrushCode;<br />　　}&nbsp;<br />　private:<br />　　string ToothbrushCode;&nbsp;<br />};<br /><br />int main (void)&nbsp;<br />{<br />　list＜string＞ SalesRecords;<br /><br />　SalesRecords.push_back("0001 Soap");<br />　SalesRecords.push_back("0002 Shampoo");<br />　SalesRecords.push_back("0003 Toothbrush");<br />　SalesRecords.push_back("0004 Toothpaste");<br />　SalesRecords.push_back("0003 Toothbrush");<br /><br />　string VariableToothbrushCode("0003");<br /><br />　int NumberOfToothbrushes(0);&nbsp;<br />　count_if (SalesRecords.begin(), SalesRecords.end(),&nbsp;<br />　IsAToothbrush(VariableToothbrushCode),<br />　NumberOfToothbrushes);<br />　cout ＜＜ "There were "<br />　＜＜ NumberOfToothbrushes&nbsp;<br />　＜＜ " toothbrushes matching code "<br />　＜＜ VariableToothbrushCode<br />　＜＜ " sold"&nbsp;<br />　＜＜ endl;<br />}</td></tr></tbody></table><br />　　程序的输出是：&nbsp;<br /><br />　　There were 2 toothbrushes matching code 0003 sold&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp; 这个例子演示了如何向函数对象传递信息。你可以定义任意你想要的构造函数，你可以再函数对象中做任何你 想做的处理，都可以合法编译通过。&nbsp;<br /><br />
<p style="text-indent: 0px; margin: 5px auto">　　你可以看到函数对象真的扩展了基本记数算法。&nbsp;</p></div>
<p style="line-height: 21px; text-indent: 0px; margin: 5px auto; font-family: verdana, 'courier new'; font-size: 14px"></p>
<p style="line-height: 21px; text-indent: 0px; margin: 5px auto; font-family: verdana, 'courier new'; font-size: 14px">&nbsp;</p>   <img src ="http://www.cppblog.com/xkjy3000/aggbug/180091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-06-25 00:56 <a href="http://www.cppblog.com/xkjy3000/archive/2012/06/25/180091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>STL标准模板类库-LIST的使用</title><link>http://www.cppblog.com/xkjy3000/archive/2012/06/22/179805.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Fri, 22 Jun 2012 13:18:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/06/22/179805.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/179805.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/06/22/179805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/179805.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/179805.html</trackback:ping><description><![CDATA[<p><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">List 的使用<br /><strong>在使用list必须包括头文件#include &lt;list&gt;<br /></strong><br /><strong>1、如何定义一个list对象</strong></p><pre style="word-wrap: break-word; white-space: pre-wrap">#include &lt;list&gt;
int main (void)
{
    list&lt;char &gt; cList; //声明了list&lt;char&gt;模板类 的一个实例
}
</pre><strong>2、使用list的成员函数push_back和push_front插入一个元素到list中</strong><pre style="word-wrap: break-word; white-space: pre-wrap">cList. push_back(&#8216;a&#8217;); //把一个对象放到一个list的后面
cList. push_front (&#8216;b&#8217;); //把一个对象放到一个list的前面
</pre><strong>3、使用list的成员函数empty()判断list是否为空</strong><pre style="word-wrap: break-word; white-space: pre-wrap">if (cList.empty())
{
    printf(&#8220;this list is empty&#8221;);
}
</pre><strong>4、用list&lt; char &gt;::iterator得到指向list的指针</strong><pre style="word-wrap: break-word; white-space: pre-wrap">list&lt; char&gt;::iterator charIterator;
for(cIterator = cList.Begin();cIterator != cList.end();cIterator++)
{
    printf(&#8220;%c&#8221;, *cIterator);
} //输出list中的所有对象
</pre>说明：cList.Begin()和cList.end()函数返回指向list&lt; char &gt;::iterator的指针，由于list采用链表结构，因此它不支持随机存取，因此不能用cList.begin()+3来指向list中的第四个对象，vector和deque支持随机存取。<br /><br /><strong>5、用STL的通用算法count()来统计list中的元素个数</strong><pre style="word-wrap: break-word; white-space: pre-wrap">int cNum;
char ch = &#8217;b&#8217;;
cNum = count(cList.Begin(), cList.end(), ch); //统计list中的字符b的个数
</pre>说明：在使用count()函数之前必须加入#include &lt;algorithm&gt;<span class="Apple-converted-space">&nbsp;</span><br /><br /><strong>6、用STL的通用算法count_if ()来统计list中的元素个数</strong><pre style="word-wrap: break-word; white-space: pre-wrap">const char c(&#8216;c&#8217;);
class IsC
{
public:
	bool operator() ( char&amp; ch )
	{
		return ch== c;
	}
};

int numC;
numC = count_if (cList.begin(), cList.end(),IsC());//统计c的数量；
</pre>说明：count_if() 带一个函数对象的参数,函数对象是一个至少带有一个operator()方法的类函数对象被约定为STL算法调用operator时返回true或false。它们根据这个来判定这个函数。举个例子会 说的更清楚些。count_if()通过传递一个函数对象来作出比count()更加复杂的评估以确定一个对象是否应该被记数。<br /><br /><strong>7、使用STL通用算法find()在list中查找对象</strong><pre style="word-wrap: break-word; white-space: pre-wrap">list&lt;char &gt;::iterator FindIterator;
FindIterator = find(cList.begin(), cList.end(), &#8216;c&#8217;);
If (FindIterator == cList.end())
{
    printf(&#8220;not find the char &#8216;c&#8217;!&#8221;);
}
else
{
    printf(&#8220;%c&#8221;, * FindIterator);
}
</pre>说明：如果没有找到指定的对象，就会返回cList.end()的值，找到了就返回一个指向对象iterator的指针。<br /><br /><strong>8、使用STL通用算法find_if()在list中查找对象</strong><pre style="word-wrap: break-word; white-space: pre-wrap">const char c(&#8216;c&#8217;);
class c
{
public:
	bool operator() ( char&amp; ch )
	{
		return ch== c;
	}
};

list&lt;char&gt;::iterator FindIterator
FindIterator = find_if (cList.begin(), cList.end(),IsC());//查找字符串c；
</pre>说明：如果没有找到指定的对象，就会返回cList.end()的值，找到了就返回一个指向对象iterator的指针。<br /><br /><strong>9、使用list的成员函数sort()排序</strong><pre style="word-wrap: break-word; white-space: pre-wrap">cList.sort();
</pre><strong>10、使用list的成员函数insert插入一个对象到list中</strong><pre style="word-wrap: break-word; white-space: pre-wrap">cList.insert(cLiset.end, &#8216;c&#8217;); ///在list末尾插入字符&#8216;c&#8217;

char ch[3] ={&#8216;a&#8217;, &#8216;b&#8217;, &#8216;c&#8217;};
cList.insert(cList.end, &amp;ch[0], &amp; ch[3] ); //插入三个字符到list中
</pre>说明：insert()函数把一个或多个元素插入到指出的iterator位置。元素将出现在 iterator指出的位置以前。<br /><br /><strong>11、如何在list中删除元素</strong><pre style="word-wrap: break-word; white-space: pre-wrap">cList.pop_front(); //删除第一个元素
cList.pop_back(); //删除最后一个元素
cList. Erase(cList.begin()); //使用iterator删除第一个元素；
cList. Erase(cList.begin(), cList.End()); //使用iterator删除所有元素；
cList.remove(&#8216;c&#8217;); //使用remove函数删除指定的对象；

list&lt;char&gt;::iterator newEnd;
//删除所有的&#8217;c&#8217; ,并返回指向新的list的结尾的iterator
newEnd = cList.remove(cList.begin(), cList.end(), &#8216;c&#8217;);</pre></span>   <img src ="http://www.cppblog.com/xkjy3000/aggbug/179805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-06-22 21:18 <a href="http://www.cppblog.com/xkjy3000/archive/2012/06/22/179805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>