title: make_pair of std::map - how to make a pair only if the key is not listed (and update the key otherwise)?
body: <p>Consider the following code : </p>
  
  <pre><code>std::map &lt;string,string&gt; myMap;
  myMap.insert(std::make_pair("first_key" , "no_value" ));
  myMap.insert(std::make_pair("first_key" , "first_value" ));
  myMap.insert(std::make_pair("second_key" , "second_value" ));
  
  typedef map&lt;string, string&gt;::const_iterator MapIterator;
  for (MapIterator iter = myMap.begin(); iter != myMap.end(); iter++)
  {
      cout &lt;&lt; "Key: " &lt;&lt; iter-&gt;first &lt;&lt; endl &lt;&lt; "Values:" &lt;&lt; iter-&gt;second &lt;&lt; endl;
  }
  </code></pre>
  
  <p>The output is : </p>
  
  <pre><code>Key: first_key
  Values:no_value
  Key: second_key
  Values:second_value
  </code></pre>
  
  <p>Meaning is that the second assignment :</p>
  
  <pre><code>myMap.insert(std::make_pair("first_key" , "first_value" ));
  </code></pre>
  
  <p>didn't take place .</p>
  
  <p>How can I make a pair , only if the key is not already listed , and if is listed - change its value ? </p>
  
  <p>Is there any generic method of std::map ? </p>