﻿<?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++博客-Coffee in  Code out---编程的一种境界-随笔分类-STL&amp;&amp;BOOST</title><link>http://www.cppblog.com/stonexin/category/14791.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 03 May 2013 11:27:47 GMT</lastBuildDate><pubDate>Fri, 03 May 2013 11:27:47 GMT</pubDate><ttl>60</ttl><item><title>【原创】正确使用map的erase方法【修正版】</title><link>http://www.cppblog.com/stonexin/archive/2013/05/03/199928.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Fri, 03 May 2013 03:29:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2013/05/03/199928.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/199928.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2013/05/03/199928.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/199928.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/199928.html</trackback:ping><description><![CDATA[在好多不负责任的博客中普及了一些错误的map删除元素的方法。<br />
现在给出纠正。<br />
<br />
首先，map的erase方法有三种形式<br /><br />
<table style="font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; color: black; border-collapse: collapse; border-bottom-width: 0px; width: 722px; background-color: #fafffa;">
     <tbody>
         <tr style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #f0f0f0;">
             <th style="text-align: right; font-weight: normal; font-style: italic; color: #a0d0a0;">(1)</th>
             <td style="padding-left: 12px; color: #008000;">
             <pre style="margin-top: 0px; margin-bottom: 0px;"> void erase (iterator position); </pre>
             </td>
         </tr>
         <tr style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #f0f0f0; background-color: #f2fff2;">
             <th style="text-align: right; font-weight: normal; font-style: italic; color: #a0d0a0;">(2)</th>
             <td style="padding-left: 12px; color: #008000;">
             <pre style="margin-top: 0px; margin-bottom: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_type erase (const key_type&amp; k); </pre>
             </td>
         </tr>
         <tr style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #f0f0f0;">
             <th style="text-align: right; font-weight: normal; font-style: italic; color: #a0d0a0;">(3)</th>
             <td style="padding-left: 12px; color: #008000;">
             <pre style="margin-top: 0px; margin-bottom: 0px;"> void erase (iterator first, iterator last);</pre>
             </td>
         </tr>
     </tbody>
</table>
<br />第3种没有什么歧义，不用细说了。<br />
最有歧义的就是第一种和第二种。<br />
<br />
有返回值的接口，是删除key为参数的。返回值是删除的数量。因为map中key不会重复，所以，如果key存在，则返回的是1，否则，返回是0；<br />
<br />
如果是调用的iter接口，则删除的是迭代器位置的元素。<br />
如果只删除一个元素，直接 map.erase(iter);就好了。<br />
如果用循环。<br />
while（iter！=map.end）<br />
{<br />
&nbsp; &nbsp; if(condition)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp; &nbsp; &nbsp; map.erase(iter++);<br />
&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp; &nbsp; &nbsp; ++iter; &nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
}<br />
官方手册地址：<br />
http://www.cplusplus.com/reference/map/map/erase/<img src ="http://www.cppblog.com/stonexin/aggbug/199928.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2013-05-03 11:29 <a href="http://www.cppblog.com/stonexin/archive/2013/05/03/199928.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现简单的POST数据【修正版】</title><link>http://www.cppblog.com/stonexin/archive/2012/12/12/196198.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Wed, 12 Dec 2012 09:46:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2012/12/12/196198.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/196198.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2012/12/12/196198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/196198.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/196198.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实现简单的POST数据【修正版】&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2012/12/12/196198.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/196198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2012-12-12 17:46 <a href="http://www.cppblog.com/stonexin/archive/2012/12/12/196198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不定长参数格式化输出(支持中文字符)</title><link>http://www.cppblog.com/stonexin/archive/2012/05/17/175221.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Thu, 17 May 2012 08:52:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2012/05/17/175221.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/175221.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2012/05/17/175221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/175221.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/175221.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; ">string</span>&gt;<br />
<span style="color: #0000FF; ">void</span>&nbsp;myformat(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*fmt,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif" alt="" />)<br />
{<br />
va_list&nbsp;ap;<br />
va_start(ap,&nbsp;fmt);<br />
wchar_t&nbsp;buf[2048];<br />
vswprintf(buf,fmt,ap);<br />
va_end(ap);<br />
std::wcout.imbue(std::locale("chs"));<br />
std::wcout&lt;&lt;buf&lt;&lt;std::endl;<br />
}</div>
如果要返回值：
<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; ">string</span>&gt;<br />
<span style="color: #0000FF; ">std::wstring</span>&nbsp;myformat(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*fmt,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif" alt="" />)<br />
{<br />
va_list&nbsp;ap;<br />
va_start(ap,&nbsp;fmt);<br />
wchar_t&nbsp;buf[2048];<br />
vswprintf(buf,fmt,ap);<br />
va_end(ap);<br />
std::wstring str = std::wstring(buf);<br />
return str;<br />
}</div><img src ="http://www.cppblog.com/stonexin/aggbug/175221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2012-05-17 16:52 <a href="http://www.cppblog.com/stonexin/archive/2012/05/17/175221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Boost异步IO</title><link>http://www.cppblog.com/stonexin/archive/2012/04/09/170640.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Mon, 09 Apr 2012 09:59:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2012/04/09/170640.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/170640.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2012/04/09/170640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/170640.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/170640.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Boost异步IO&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2012/04/09/170640.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/170640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2012-04-09 17:59 <a href="http://www.cppblog.com/stonexin/archive/2012/04/09/170640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fwrite函数应用</title><link>http://www.cppblog.com/stonexin/archive/2012/03/15/167999.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Thu, 15 Mar 2012 10:15:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2012/03/15/167999.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/167999.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2012/03/15/167999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/167999.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/167999.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: fwrite函数应用&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2012/03/15/167999.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/167999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2012-03-15 18:15 <a href="http://www.cppblog.com/stonexin/archive/2012/03/15/167999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CString、LPSTR、std::string、LPCSTR之间的转换</title><link>http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Thu, 01 Dec 2011 06:43:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/161280.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/161280.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/161280.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: CString、LPSTR、std::string、LPCSTR之间的转换利用MultiByteToWideChar、WideCharToMultiByte&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/161280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-12-01 14:43 <a href="http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost::scoped_ptr作为成员变量的使用</title><link>http://www.cppblog.com/stonexin/archive/2011/07/25/scoped_ptr.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Mon, 25 Jul 2011 05:46:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/07/25/scoped_ptr.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/151782.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/07/25/scoped_ptr.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/151782.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/151782.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: boost：：scoped_ptr作为类成员变量初始化&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/07/25/scoped_ptr.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/151782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-07-25 13:46 <a href="http://www.cppblog.com/stonexin/archive/2011/07/25/scoped_ptr.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DepClearVector  DepCopyVector</title><link>http://www.cppblog.com/stonexin/archive/2011/07/05/150193.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Tue, 05 Jul 2011 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/07/05/150193.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/150193.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/07/05/150193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/150193.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/150193.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用模板的方式简化vector的删除和深度拷贝&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/07/05/150193.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/150193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-07-05 11:16 <a href="http://www.cppblog.com/stonexin/archive/2011/07/05/150193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>去除Warning C4251 “class 'std::vector&lt;_Ty&gt;' needs to have dll-interface to be used by clients of class”</title><link>http://www.cppblog.com/stonexin/archive/2011/05/18/146658.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Wed, 18 May 2011 06:51:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/05/18/146658.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/146658.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/05/18/146658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/146658.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/146658.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 去掉警告C4251  导出实例化的一个标准模板库 (STL) 类 导出包含一个 STL 的一个数据成员的类对象&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/05/18/146658.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/146658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-05-18 14:51 <a href="http://www.cppblog.com/stonexin/archive/2011/05/18/146658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用STL中的sort对vector中指针元素的排序</title><link>http://www.cppblog.com/stonexin/archive/2011/04/25/144949.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Mon, 25 Apr 2011 04:37:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/04/25/144949.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/144949.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/04/25/144949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/144949.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/144949.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: vector 指针 排序 sort&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/04/25/144949.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/144949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-04-25 12:37 <a href="http://www.cppblog.com/stonexin/archive/2011/04/25/144949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cstring、String、double、int之间转换，精度控制</title><link>http://www.cppblog.com/stonexin/archive/2011/03/31/143089.html</link><dc:creator>Stone xin</dc:creator><author>Stone xin</author><pubDate>Thu, 31 Mar 2011 04:10:00 GMT</pubDate><guid>http://www.cppblog.com/stonexin/archive/2011/03/31/143089.html</guid><wfw:comment>http://www.cppblog.com/stonexin/comments/143089.html</wfw:comment><comments>http://www.cppblog.com/stonexin/archive/2011/03/31/143089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/stonexin/comments/commentRss/143089.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/stonexin/services/trackbacks/143089.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Cstring、String、double、int之间转换，精度控制，格式化输出&nbsp;&nbsp;<a href='http://www.cppblog.com/stonexin/archive/2011/03/31/143089.html'>阅读全文</a><img src ="http://www.cppblog.com/stonexin/aggbug/143089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/stonexin/" target="_blank">Stone xin</a> 2011-03-31 12:10 <a href="http://www.cppblog.com/stonexin/archive/2011/03/31/143089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>