{"id":18242,"date":"2024-03-15T16:31:23","date_gmt":"2024-03-15T16:31:23","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/"},"modified":"2024-03-21T12:50:30","modified_gmt":"2024-03-21T12:50:30","slug":"how-to-implement-deleting-elements-while-iterating-through-a-c-map","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/","title":{"rendered":"How to implement deleting elements while iterating through a C++ map?"},"content":{"rendered":"<p>In C++, iterators can be used to iterate through and delete elements in a map. One common implementation is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;map&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    std::map&lt;<span class=\"hljs-type\">int<\/span>, std::string&gt; myMap;\r\n    myMap[<span class=\"hljs-number\">1<\/span>] = <span class=\"hljs-string\">\"Apple\"<\/span>;\r\n    myMap[<span class=\"hljs-number\">2<\/span>] = <span class=\"hljs-string\">\"Banana\"<\/span>;\r\n    myMap[<span class=\"hljs-number\">3<\/span>] = <span class=\"hljs-string\">\"Orange\"<\/span>;\r\n    myMap[<span class=\"hljs-number\">4<\/span>] = <span class=\"hljs-string\">\"Grape\"<\/span>;\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u904d\u5386\u5e76\u5220\u9664\u7b26\u5408\u6761\u4ef6\u7684\u5143\u7d20<\/span>\r\n    <span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">auto<\/span> it = myMap.<span class=\"hljs-built_in\">begin<\/span>(); it != myMap.<span class=\"hljs-built_in\">end<\/span>(); ) {\r\n        <span class=\"hljs-keyword\">if<\/span>(it-&gt;second == <span class=\"hljs-string\">\"Banana\"<\/span>) {\r\n            it = myMap.<span class=\"hljs-built_in\">erase<\/span>(it); <span class=\"hljs-comment\">\/\/ \u5220\u9664\u5143\u7d20\u5e76\u66f4\u65b0\u8fed\u4ee3\u5668<\/span>\r\n        }\r\n        <span class=\"hljs-keyword\">else<\/span> {\r\n            ++it;\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\u5269\u4f59\u5143\u7d20<\/span>\r\n    <span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-type\">const<\/span> <span class=\"hljs-keyword\">auto<\/span>&amp; pair : myMap) {\r\n        std::cout &lt;&lt; pair.first &lt;&lt; <span class=\"hljs-string\">\": \"<\/span> &lt;&lt; pair.second &lt;&lt; std::endl;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>This code segment creates a map and then iterates through it using an iterator. During the iteration, it checks if the value of each element is &#8220;Banana&#8221;. If it is, it deletes the element using the erase() function and updates the iterator to point to the next element. If it is not, it increments the iterator to the next element. This allows for iterating and deleting all elements in the map with a value of &#8220;Banana&#8221;.<\/p>\n<p>After using the erase() function to delete an element, the iterator becomes invalid, so it must be updated to point to the next element to avoid undefined behavior.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, iterators can be used to iterate through and delete elements in a map. One common implementation is as follows: #include &lt;iostream&gt; #include &lt;map&gt; int main() { std::map&lt;int, std::string&gt; myMap; myMap[1] = &#8220;Apple&#8221;; myMap[2] = &#8220;Banana&#8221;; myMap[3] = &#8220;Orange&#8221;; myMap[4] = &#8220;Grape&#8221;; \/\/ \u904d\u5386\u5e76\u5220\u9664\u7b26\u5408\u6761\u4ef6\u7684\u5143\u7d20 for(auto it = myMap.begin(); it != myMap.end(); ) { if(it-&gt;second [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18242","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement deleting elements while iterating through a C++ map? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement deleting elements while iterating through a C++ map?\" \/>\n<meta property=\"og:description\" content=\"In C++, iterators can be used to iterate through and delete elements in a map. One common implementation is as follows: #include &lt;iostream&gt; #include &lt;map&gt; int main() { std::map&lt;int, std::string&gt; myMap; myMap[1] = &quot;Apple&quot;; myMap[2] = &quot;Banana&quot;; myMap[3] = &quot;Orange&quot;; myMap[4] = &quot;Grape&quot;; \/\/ \u904d\u5386\u5e76\u5220\u9664\u7b26\u5408\u6761\u4ef6\u7684\u5143\u7d20 for(auto it = myMap.begin(); it != myMap.end(); ) { if(it-&gt;second [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:31:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:50:30+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How to implement deleting elements while iterating through a C++ map?\",\"datePublished\":\"2024-03-15T16:31:23+00:00\",\"dateModified\":\"2024-03-21T12:50:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\"},\"wordCount\":136,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\",\"name\":\"How to implement deleting elements while iterating through a C++ map? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:31:23+00:00\",\"dateModified\":\"2024-03-21T12:50:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement deleting elements while iterating through a C++ map?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to implement deleting elements while iterating through a C++ map? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/","og_locale":"en_US","og_type":"article","og_title":"How to implement deleting elements while iterating through a C++ map?","og_description":"In C++, iterators can be used to iterate through and delete elements in a map. One common implementation is as follows: #include &lt;iostream&gt; #include &lt;map&gt; int main() { std::map&lt;int, std::string&gt; myMap; myMap[1] = \"Apple\"; myMap[2] = \"Banana\"; myMap[3] = \"Orange\"; myMap[4] = \"Grape\"; \/\/ \u904d\u5386\u5e76\u5220\u9664\u7b26\u5408\u6761\u4ef6\u7684\u5143\u7d20 for(auto it = myMap.begin(); it != myMap.end(); ) { if(it-&gt;second [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:31:23+00:00","article_modified_time":"2024-03-21T12:50:30+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How to implement deleting elements while iterating through a C++ map?","datePublished":"2024-03-15T16:31:23+00:00","dateModified":"2024-03-21T12:50:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/"},"wordCount":136,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/","name":"How to implement deleting elements while iterating through a C++ map? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:31:23+00:00","dateModified":"2024-03-21T12:50:30+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-deleting-elements-while-iterating-through-a-c-map\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement deleting elements while iterating through a C++ map?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18242"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18242\/revisions"}],"predecessor-version":[{"id":51908,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18242\/revisions\/51908"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}