{"id":4689,"date":"2020-10-26T20:43:56","date_gmt":"2020-10-26T12:43:56","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=4689"},"modified":"2020-10-26T20:43:56","modified_gmt":"2020-10-26T12:43:56","slug":"c%e8%bf%ad%e4%bb%a3%e5%99%a8%e5%a4%b1%e6%95%88%e7%9a%84%e5%87%a0%e7%a7%8d%e6%83%85%e5%86%b5%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/4689","title":{"rendered":"C++\u8fed\u4ee3\u5668\u5931\u6548\u7684\u51e0\u79cd\u60c5\u51b5\u603b\u7ed3"},"content":{"rendered":"<div class=\"clear\"><a href=\"https:\/\/www.cnblogs.com\/fnlingnzb-learner\/p\/9300073.html\">\u539f\u6587\u5730\u5740<\/a><\/div>\n<div><\/div>\n<div class=\"postBody\">\n<div id=\"cnblogs_post_body\" class=\"blogpost-body\">\n<p><strong>\u4e00\u3001\u5e8f\u5217\u5f0f\u5bb9\u5668(\u6570\u7ec4\u5f0f\u5bb9\u5668)<\/strong><\/p>\n<p>\u5bf9\u4e8e\u5e8f\u5217\u5f0f\u5bb9\u5668(\u5982vector,deque)\uff0c\u5e8f\u5217\u5f0f\u5bb9\u5668\u5c31\u662f\u6570\u7ec4\u5f0f\u5bb9\u5668\uff0c\u5220\u9664\u5f53\u524d\u7684iterator\u4f1a\u4f7f\u540e\u9762\u6240\u6709\u5143\u7d20\u7684iterator\u90fd\u5931\u6548\u3002\u8fd9\u662f\u56e0\u4e3avetor,deque\u4f7f\u7528\u4e86\u8fde\u7eed\u5206\u914d\u7684\u5185\u5b58\uff0c\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u5bfc\u81f4\u540e\u9762\u6240\u6709\u7684\u5143\u7d20\u4f1a\u5411\u524d\u79fb\u52a8\u4e00\u4e2a\u4f4d\u7f6e\u3002\u6240\u4ee5\u4e0d\u80fd\u4f7f\u7528erase(iter++)\u7684\u65b9\u5f0f\uff0c\u8fd8\u597derase\u65b9\u6cd5\u53ef\u4ee5\u8fd4\u56de\u4e0b\u4e00\u4e2a\u6709\u6548\u7684iterator\u3002<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>1 for (iter = cont.begin(); iter != cont.end();)\r\n2 {\r\n3    (*it)-&gt;doSomething();\r\n4    if (shouldDelete(*iter))\r\n5       iter = cont.erase(iter);  \/\/erase\u5220\u9664\u5143\u7d20\uff0c\u8fd4\u56de\u4e0b\u4e00\u4e2a\u8fed\u4ee3\u5668\r\n6    else\r\n7       ++iter;\r\n8 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u8fed\u4ee3\u5668\u5931\u6548\uff1a<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre> 1 void vectorTest()\r\n 2 {\r\n 3     vector&lt;int&gt; container;\r\n 4     for (int i = 0; i &lt; 10; i++)\r\n 5     {\r\n 6         container.push_back(i);\r\n 7     }\r\n 8  \r\n 9     vector&lt;int&gt;::iterator iter;\r\n10      for (iter = container.begin(); iter != container.end(); iter++)\r\n11     {\r\n12             if (*iter &gt; 3)\r\n13               container.erase(iter);\r\n14     }\r\n15  \r\n16      for (iter = container.begin(); iter != container.end(); iter++)\r\n17     {\r\n18             cout&lt;&lt;*iter&lt;&lt;endl;\r\n19     }\r\n20 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u62a5\u9519\u662f\uff1a<strong>vectoriterator not incrementable.<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/1000464\/201807\/1000464-20180712124558463-1303211605.png\" alt=\"\" \/><\/p>\n<p>\u8fed\u4ee3\u5668\u5728\u6267\u884c++\u64cd\u4f5c\u65f6\u62a5\u9519\uff01\u5df2\u7ecf\u5931\u6548\u7684\u8fed\u4ee3\u5668\u4e0d\u80fd\u518d\u8fdb\u884c\u81ea\u589e\u8fd0\u7b97\u4e86\u3002++\u4ee3\u7801\u5927\u81f4\u5b9e\u73b0\u5982\u4e0b\uff1a<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>1 _Myiter operator++(int)\r\n2 {\r\n3     _Myiter _Tmp=*this;\r\n4     ++*this;\r\n5     return (_Tmp);\r\n6 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u5bf9\u4e8e\u5e8f\u5217\u5f0f\u5bb9\u5668\uff0c\u6bd4\u5982vector\uff0c\u5220\u9664\u5f53\u524d\u7684iterator\u4f1a\u4f7f\u540e\u9762\u6240\u6709\u5143\u7d20\u7684iterator\u90fd\u5931\u6548\u3002\u8fd9\u662f\u56e0\u4e3a\u987a\u5e8f\u5bb9\u5668\u5185\u5b58\u662f\u8fde\u7eed\u5206\u914d\uff08\u5206\u914d\u4e00\u4e2a\u6570\u7ec4\u4f5c\u4e3a\u5185\u5b58\uff09\uff0c\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u5bfc\u81f4\u540e\u9762\u6240\u6709\u7684\u5143\u7d20\u4f1a\u5411\u524d\u79fb\u52a8\u4e00\u4e2a\u4f4d\u7f6e\u3002\uff08\u5220\u9664\u4e86\u4e00\u4e2a\u5143\u7d20\uff0c\u8be5\u5143\u7d20\u540e\u9762\u7684\u6240\u6709\u5143\u7d20\u90fd\u8981\u632a\u4f4d\u7f6e\uff0c\u6240\u4ee5\uff0citer++\uff0c\u5df2\u7ecf\u6307\u5411\u7684\u662f\u672a\u77e5\u5185\u5b58\uff09\u3002<\/p>\n<p>\u4f46\u662ferase\u65b9\u6cd5\u53ef\u4ee5\u8fd4\u56de\u4e0b\u4e00\u4e2a\u6709\u6548\u7684iterator\u3002\u6240\u4ee5\u4ee3\u7801\u505a\u5982\u4e0b\u4fee\u6539\uff0c\u5c31OK\u4e86\u3002<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre> 1 void vectorTest()\r\n 2 {\r\n 3     vector&lt;int&gt; container;\r\n 4     for (int i = 0; i &lt; 10; i++)\r\n 5     {\r\n 6         container.push_back(i);\r\n 7     }\r\n 8  \r\n 9     vector&lt;int&gt;::iterator iter;\r\n10     for (iter = container.begin(); iter != container.end();)\r\n11     {\r\n12             if (*iter &gt; 3) {\r\n13                 iter = container.erase(iter);\r\n14             }\r\n15             else {\r\n16                 iter ++;\r\n17             }\r\n18  \r\n19     }\r\n20  \r\n21     for (iter = container.begin(); iter != container.end(); iter++)\r\n22     {\r\n23             cout&lt;&lt;*iter&lt;&lt;endl;\r\n24     }\r\n25 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u603b\u7ed3\uff1avector\u662f\u4e00\u4e2a\u987a\u5e8f\u5bb9\u5668\uff0c\u5728\u5185\u5b58\u4e2d\u662f\u4e00\u5757\u8fde\u7eed\u7684\u5185\u5b58\uff0c\u5f53\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u540e\uff0c\u5185\u5b58\u4e2d\u7684\u6570\u636e\u4f1a\u53d1\u751f\u79fb\u52a8\uff0c\u4ee5\u4fdd\u8bc1\u6570\u636e\u7684\u7d27\u51d1\u3002\u6240\u4ee5\u5220\u9664\u4e00\u4e2a\u6570\u636e\u540e\uff0c\u5176\u4ed6\u6570\u636e\u7684\u5730\u5740\u53d1\u751f\u4e86\u53d8\u5316\uff0c\u4e4b\u524d\u83b7\u53d6\u7684\u8fed\u4ee3\u5668\u6839\u636e\u539f\u6709\u7684\u4fe1\u606f\u5c31\u8bbf\u95ee\u4e0d\u5230\u6b63\u786e\u7684\u6570\u636e\u3002<\/p>\n<p>\u6240\u4ee5\u4e3a\u4e86\u9632\u6b62vector\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u5e38\u7528\u5982\u4e0b\u65b9\u6cd5\uff1a<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>1 for (iter = container.begin(); iter != container.end(); )\r\n2 {\r\n3             if (*iter &gt; 3)\r\n4               iter = container.erase(iter);    \/\/erase\u7684\u8fd4\u56de\u503c\u662f\u5220\u9664\u5143\u7d20\u4e0b\u4e00\u4e2a\u5143\u7d20\u7684\u8fed\u4ee3\u5668\r\n5             else{\r\n6                 iter++;\r\n7             }\r\n8 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u8fd9\u6837\u5220\u9664\u540eiter\u6307\u5411\u7684\u5143\u7d20\u540e\uff0c\u8fd4\u56de\u7684\u662f\u4e0b\u4e00\u4e2a\u5143\u7d20\u7684\u8fed\u4ee3\u5668\uff0c\u8fd9\u4e2a\u8fed\u4ee3\u5668\u662fvector\u5185\u5b58\u8c03\u6574\u8fc7\u540e\u65b0\u7684\u6709\u6548\u7684\u8fed\u4ee3\u5668\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u4e8c\u3001\u5173\u8054\u5f0f\u5bb9\u5668<\/strong><\/p>\n<p>\u5bf9\u4e8e\u5173\u8054\u5bb9\u5668(\u5982map, set,multimap,multiset)\uff0c\u5220\u9664\u5f53\u524d\u7684iterator\uff0c\u4ec5\u4ec5\u4f1a\u4f7f\u5f53\u524d\u7684iterator\u5931\u6548\uff0c\u53ea\u8981\u5728erase\u65f6\uff0c\u9012\u589e\u5f53\u524diterator\u5373\u53ef\u3002\u8fd9\u662f\u56e0\u4e3amap\u4e4b\u7c7b\u7684\u5bb9\u5668\uff0c\u4f7f\u7528\u4e86\u7ea2\u9ed1\u6811\u6765\u5b9e\u73b0\uff0c\u63d2\u5165\u3001\u5220\u9664\u4e00\u4e2a\u7ed3\u70b9\u4e0d\u4f1a\u5bf9\u5176\u4ed6\u7ed3\u70b9\u9020\u6210\u5f71\u54cd\u3002erase\u8fed\u4ee3\u5668\u53ea\u662f\u88ab\u5220\u5143\u7d20\u7684\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u4f46\u662f\u8fd4\u56de\u503c\u4e3avoid\uff0c\u6240\u4ee5\u8981\u91c7\u7528erase(iter++)\u7684\u65b9\u5f0f\u5220\u9664\u8fed\u4ee3\u5668\u3002<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre> 1 for (iter = cont.begin(); it != cont.end();)\r\n 2 {\r\n 3    (*iter)-&gt;doSomething();\r\n 4    if (shouldDelete(*iter))\r\n 5       cont.erase(iter++);\r\n 6    else\r\n 7       ++iter;\r\n 8 }\r\n 9 \r\n10 \/\/\u6d4b\u8bd5\u9519\u8bef\u7684Map\u5220\u9664\u5143\u7d20 \r\n11 void mapTest()\r\n12 {\r\n13     map&lt;int, string&gt; dataMap;\r\n14  \r\n15  \r\n16     for (int i = 0; i &lt; 100; i++)\r\n17     {\r\n18            string strValue = \"Hello, World\";\r\n19  \r\n20             stringstream ss;\r\n21             ss&lt;&lt;i;\r\n22             string tmpStrCount;\r\n23             ss&gt;&gt;tmpStrCount;\r\n24             strValue += tmpStrCount;\r\n25             dataMap.insert(make_pair(i, strValue));\r\n26     }\r\n27  \r\n28     cout&lt;&lt;\"MAP\u5143\u7d20\u5185\u5bb9\u4e3a\uff1a\"&lt;&lt;endl;\r\n29      map&lt;int, string&gt;::iterator iter;\r\n30     for (iter = dataMap.begin(); iter != dataMap.end(); iter++)\r\n31     {\r\n32             int nKey = iter-&gt;first;\r\n33             string strValue = iter-&gt;second;\r\n34             cout&lt;&lt;strValue&lt;&lt;endl;\r\n35     }\r\n36  \r\n37     cout&lt;&lt;\"\u5185\u5bb9\u5f00\u59cb\u5220\u9664\uff1a\"&lt;&lt;endl;\r\n38     \/\/\u5220\u9664\u64cd\u4f5c\u5f15\u53d1\u8fed\u4ee3\u5668\u5931\u6548\r\n39     for (iter = dataMap.begin(); iter != dataMap.end();iter++)\r\n40     {\r\n41             int nKey = iter-&gt;first;\r\n42             string strValue = iter-&gt;second;\r\n43  \r\n44            if (nKey % 2 == 0)\r\n45            {\r\n46                 dataMap.erase(iter);    \/\/\u9519\u8bef \r\n47  \r\n48            }\r\n49            \/* cout&lt;&lt;iter-&gt;second&lt;&lt;endl;*\/\r\n50     }\r\n51 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u51fa\u9519\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/1000464\/201807\/1000464-20180712134958589-1555036036.png\" alt=\"\" \/><\/p>\n<p>\u89e3\u6790\uff1adataMap.erase(iter)\u4e4b\u540e,iter\u5c31\u5df2\u7ecf\u5931\u6548\u4e86\uff0c\u6240\u4ee5iter\u65e0\u6cd5\u81ea\u589e\uff0c\u5373iter++\u5c31\u4f1a\u51fabug.\u89e3\u51b3\u65b9\u6848\uff0c\u5c31\u662f\u5728iter\u5931\u6548\u4e4b\u524d\uff0c\u5148\u81ea\u589e\u3002<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre> 1 void mapTest()\r\n 2 {\r\n 3     map&lt;int, string&gt; dataMap;\r\n 4  \r\n 5  \r\n 6     for (int i = 0; i &lt; 100; i++)\r\n 7     {\r\n 8            string strValue = \"Hello, World\";\r\n 9  \r\n10             stringstream ss;\r\n11             ss&lt;&lt;i;\r\n12             string tmpStrCount;\r\n13             ss&gt;&gt;tmpStrCount;\r\n14             strValue += tmpStrCount;\r\n15             dataMap.insert(make_pair(i, strValue));\r\n16     }\r\n17  \r\n18     cout&lt;&lt;\"MAP\u5143\u7d20\u5185\u5bb9\u4e3a\uff1a\"&lt;&lt;endl;\r\n19     map&lt;int, string&gt;::iterator iter;\r\n20     for (iter = dataMap.begin(); iter != dataMap.end(); iter++)\r\n21     {\r\n22             int nKey = iter-&gt;first;\r\n23             string strValue = iter-&gt;second;\r\n24             cout&lt;&lt;strValue&lt;&lt;endl;\r\n25     }\r\n26  \r\n27     cout&lt;&lt;\"\u5185\u5bb9\u5f00\u59cb\u5220\u9664\uff1a\"&lt;&lt;endl;\r\n28     for (iter = dataMap.begin(); iter != dataMap.end();)\r\n29     {\r\n30             int nKey = iter-&gt;first;\r\n31             string strValue = iter-&gt;second;\r\n32  \r\n33            if (nKey % 2 == 0)\r\n34            {\r\n35                 dataMap.erase(iter++);\r\n36                 auto a = iter;\r\n37  \r\n38            }\r\n39            else {\r\n40                iter ++;\r\n41            }\r\n42     }\r\n43 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u89e3\u6790\uff1adataMap.erase(iter++);\u8fd9\u53e5\u8bdd\u5206\u4e09\u6b65\u8d70\uff0c\u5148\u628aiter\u4f20\u503c\u5230erase\u91cc\u9762\uff0c\u7136\u540eiter\u81ea\u589e\uff0c\u7136\u540e\u6267\u884cerase,\u6240\u4ee5iter\u5728\u5931\u6548\u524d\u5df2\u7ecf\u81ea\u589e\u4e86\u3002<\/p>\n<p>map\u662f\u5173\u8054\u5bb9\u5668\uff0c\u4ee5\u7ea2\u9ed1\u6811\u6216\u8005\u5e73\u8861\u4e8c\u53c9\u6811\u7ec4\u7ec7\u6570\u636e\uff0c\u867d\u7136\u5220\u9664\u4e86\u4e00\u4e2a\u5143\u7d20\uff0c\u6574\u68f5\u6811\u4e5f\u4f1a\u8c03\u6574\uff0c\u4ee5\u7b26\u5408\u7ea2\u9ed1\u6811\u6216\u8005\u4e8c\u53c9\u6811\u7684\u89c4\u8303\uff0c\u4f46\u662f\u5355\u4e2a\u8282\u70b9\u5728\u5185\u5b58\u4e2d\u7684\u5730\u5740\u6ca1\u6709\u53d8\u5316\uff0c\u53d8\u5316\u7684\u662f\u5404\u8282\u70b9\u4e4b\u95f4\u7684\u6307\u5411\u5173\u7cfb\u3002<\/p>\n<p>\u6240\u4ee5\u5728map\u4e2d\u4e3a\u4e86\u9632\u6b62\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u5728\u6709\u5220\u9664\u64cd\u4f5c\u65f6\uff0c\u5e38\u7528\u5982\u4e0b\u65b9\u6cd5\uff1a<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre> 1 for (iter = dataMap.begin(); iter != dataMap.end(); )\r\n 2 {\r\n 3          int nKey = iter-&gt;first;\r\n 4          string strValue = iter-&gt;second;\r\n 5  \r\n 6          if (nKey % 2 == 0)\r\n 7          {\r\n 8                map&lt;int, string&gt;::iterator tmpIter = iter;\r\n 9            iter++;\r\n10                dataMap.erase(tmpIter);\r\n11                \/\/dataMap.erase(iter++) \u8fd9\u6837\u4e5f\u884c\r\n12  \r\n13          }else\r\n14      {\r\n15           iter++;\r\n16          }\r\n17 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p><strong>\u4e09\u3001\u94fe\u8868\u5f0f\u5bb9\u5668<\/strong><\/p>\n<p>\u5bf9\u4e8e\u94fe\u8868\u5f0f\u5bb9\u5668(\u5982list)\uff0c\u5220\u9664\u5f53\u524d\u7684iterator\uff0c\u4ec5\u4ec5\u4f1a\u4f7f\u5f53\u524d\u7684iterator\u5931\u6548\uff0c\u8fd9\u662f\u56e0\u4e3alist\u4e4b\u7c7b\u7684\u5bb9\u5668\uff0c\u4f7f\u7528\u4e86\u94fe\u8868\u6765\u5b9e\u73b0\uff0c\u63d2\u5165\u3001\u5220\u9664\u4e00\u4e2a\u7ed3\u70b9\u4e0d\u4f1a\u5bf9\u5176\u4ed6\u7ed3\u70b9\u9020\u6210\u5f71\u54cd\u3002\u53ea\u8981\u5728erase\u65f6\uff0c\u9012\u589e\u5f53\u524diterator\u5373\u53ef\uff0c\u5e76\u4e14erase\u65b9\u6cd5\u53ef\u4ee5\u8fd4\u56de\u4e0b\u4e00\u4e2a\u6709\u6548\u7684iterator\u3002<\/p>\n<p>\u65b9\u5f0f\u4e00:\u9012\u589e\u5f53\u524diterator<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>1 for (iter = cont.begin(); it != cont.end();)\r\n2 {\r\n3    (*iter)-&gt;doSomething();\r\n4    if (shouldDelete(*iter))\r\n5       cont.erase(iter++);\r\n6    else\r\n7       ++iter;\r\n8 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u65b9\u5f0f\u4e8c:\u901a\u8fc7erase\u83b7\u5f97\u4e0b\u4e00\u4e2a\u6709\u6548\u7684iterator<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>1 for (iter = cont.begin(); iter != cont.end();)\r\n2 {\r\n3    (*it)-&gt;doSomething();\r\n4    if (shouldDelete(*iter))\r\n5       iter = cont.erase(iter);  \/\/erase\u5220\u9664\u5143\u7d20\uff0c\u8fd4\u56de\u4e0b\u4e00\u4e2a\u8fed\u4ee3\u5668\r\n6    else\r\n7       ++iter;\r\n8 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p><strong>\u56db\u3001\u603b\u7ed3<\/strong><\/p>\n<p>\u8fed\u4ee3\u5668\u5931\u6548\u5206\u4e09\u79cd\u60c5\u51b5\u8003\u8651\uff0c\u4e5f\u662f\u5206\u4e09\u79cd\u6570\u636e\u7ed3\u6784\u8003\u8651\uff0c\u5206\u522b\u4e3a\u6570\u7ec4\u578b\uff0c\u94fe\u8868\u578b\uff0c\u6811\u578b\u6570\u636e\u7ed3\u6784\u3002<\/p>\n<p><strong>\u6570\u7ec4\u578b\u6570\u636e\u7ed3\u6784\uff1a<\/strong>\u8be5\u6570\u636e\u7ed3\u6784\u7684\u5143\u7d20\u662f\u5206\u914d\u5728\u8fde\u7eed\u7684\u5185\u5b58\u4e2d\uff0cinsert\u548cerase\u64cd\u4f5c\uff0c\u90fd\u4f1a\u4f7f\u5f97\u5220\u9664\u70b9\u548c\u63d2\u5165\u70b9\u4e4b\u540e\u7684\u5143\u7d20\u632a\u4f4d\u7f6e\uff0c\u6240\u4ee5\uff0c\u63d2\u5165\u70b9\u548c\u5220\u9664\u6389\u4e4b\u540e\u7684\u8fed\u4ee3\u5668\u5168\u90e8\u5931\u6548\uff0c\u4e5f\u5c31\u662f\u8bf4insert(*iter)(\u6216erase(*iter))\uff0c\u7136\u540e\u5728iter++\uff0c\u662f\u6ca1\u6709\u610f\u4e49\u7684\u3002\u89e3\u51b3\u65b9\u6cd5\uff1aerase(*iter)\u7684\u8fd4\u56de\u503c\u662f\u4e0b\u4e00\u4e2a\u6709\u6548\u8fed\u4ee3\u5668\u7684\u503c\u3002\u00a0iter =cont.erase(iter);<\/p>\n<p><strong>\u94fe\u8868\u578b\u6570\u636e\u7ed3\u6784\uff1a<\/strong>\u5bf9\u4e8elist\u578b\u7684\u6570\u636e\u7ed3\u6784\uff0c\u4f7f\u7528\u4e86\u4e0d\u8fde\u7eed\u5206\u914d\u7684\u5185\u5b58\uff0c\u5220\u9664\u8fd0\u7b97\u4f7f\u6307\u5411\u5220\u9664\u4f4d\u7f6e\u7684\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u4f46\u662f\u4e0d\u4f1a\u5931\u6548\u5176\u4ed6\u8fed\u4ee3\u5668.\u89e3\u51b3\u529e\u6cd5\u4e24\u79cd\uff0cerase(*iter)\u4f1a\u8fd4\u56de\u4e0b\u4e00\u4e2a\u6709\u6548\u8fed\u4ee3\u5668\u7684\u503c\uff0c\u6216\u8005erase(iter++).<\/p>\n<p><strong>\u6811\u5f62\u6570\u636e\u7ed3\u6784\uff1a<\/strong>\u00a0\u4f7f\u7528\u7ea2\u9ed1\u6811\u6765\u5b58\u50a8\u6570\u636e\uff0c\u63d2\u5165\u4e0d\u4f1a\u4f7f\u5f97\u4efb\u4f55\u8fed\u4ee3\u5668\u5931\u6548\uff1b\u5220\u9664\u8fd0\u7b97\u4f7f\u6307\u5411\u5220\u9664\u4f4d\u7f6e\u7684\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u4f46\u662f\u4e0d\u4f1a\u5931\u6548\u5176\u4ed6\u8fed\u4ee3\u5668.erase\u8fed\u4ee3\u5668\u53ea\u662f\u88ab\u5220\u5143\u7d20\u7684\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u4f46\u662f\u8fd4\u56de\u503c\u4e3avoid\uff0c\u6240\u4ee5\u8981\u91c7\u7528erase(iter++)\u7684\u65b9\u5f0f\u5220\u9664\u8fed\u4ee3\u5668\u3002<\/p>\n<p>\u6ce8\u610f\uff1a\u7ecf\u8fc7erase(iter)\u4e4b\u540e\u7684\u8fed\u4ee3\u5668\u5b8c\u5168\u5931\u6548\uff0c\u8be5\u8fed\u4ee3\u5668iter\u4e0d\u80fd\u53c2\u4e0e\u4efb\u4f55\u8fd0\u7b97\uff0c\u5305\u62eciter++,*ite<\/p>\n<\/div>\n<div class=\"clear\"><\/div>\n<div id=\"blog_post_info_block\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u4e00\u3001\u5e8f\u5217\u5f0f\u5bb9\u5668(\u6570\u7ec4\u5f0f\u5bb9\u5668) <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[119],"class_list":["post-4689","post","type-post","status-publish","format-standard","hentry","tag-03-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/4689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=4689"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/4689\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=4689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=4689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=4689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}