<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>map on yonmy</title><link>https://yonmy.com/tags/map/</link><description>Recent content in map on yonmy</description><generator>Hugo</generator><language>ko-KR</language><lastBuildDate>Sun, 17 Apr 2016 11:53:21 +0900</lastBuildDate><atom:link href="https://yonmy.com/tags/map/index.xml" rel="self" type="application/rss+xml"/><item><title>std::map(set) insert 정확하게 사용하기</title><link>https://yonmy.com/archives/9/</link><pubDate>Sun, 17 Apr 2016 11:53:21 +0900</pubDate><guid>https://yonmy.com/archives/9/</guid><description>&lt;p&gt;꽤나 많은 프로그래머들이 std::map insert 의 사용을 잘 못 하고 있는 경우가 있어서, 오늘은 그것에 대해 이야기 하려고 한다.&lt;/p&gt;&#10;&lt;p&gt;우선 std::map의 insert의 기본형을 보면 다음과 같다.&lt;/p&gt;&#10;&lt;p&gt;pair&amp;lt;iterator,bool&amp;gt; insert (const pair&amp;lt;const Key, Type&amp;gt;&amp;amp; val);&lt;/p&gt;&#10;&lt;p&gt;여기서 중요한점은 리턴값으로 pair를 돌려주고 있는데, 이 리턴값의 의미를 정확히 이해 하고 있어야 한다.&lt;/p&gt;&#10;&lt;div class="table-responsive"&gt;&lt;table style="width:700px; " class="easy-table easy-table-cuscosky " &gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&lt;th &gt;insert 결과&lt;/th&gt;&#10;&lt;th &gt; 첫번째(iterator)&lt;/th&gt;&#10;&lt;th &gt; 두번째(bool)&lt;/th&gt;&#10;&lt;th &gt; 언제 발생&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&lt;td &gt;성공&lt;/td&gt;&#10;&lt;td &gt; insert되어진 element의 iterator&lt;/td&gt;&#10;&lt;td &gt; true&lt;/td&gt;&#10;&lt;td &gt; 중복된 Key가 존재 하지 않을때&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&lt;td &gt;실패&lt;/td&gt;&#10;&lt;td &gt; 중복된 Key의 element의 iterator&lt;/td&gt;&#10;&lt;td &gt; false&lt;/td&gt;&#10;&lt;td &gt; 중복된 Key가 존재 할때&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&#10;&lt;p&gt;insert를 한다는 것도 내부적으로 insert할 위치를 찾아가며, (이는 &lt;a href="https://en.wikipedia.org/wiki/Red%E2%80%93black_tree"&gt;Red-black tree&lt;/a&gt; 를 구성 하려면 당연하다.)&lt;/p&gt;</description></item></channel></rss>