title: map with const keys but non const values?
body: <p>I have a situation, where I would like to have a map that does not allow to add/remove keys after initialization, but the values are allowed to change (thus I cannot simply make the map <code>const</code>). Ie</p>
  
  <pre><code>/*semi-const*/ map&lt;int,int&gt; myMap = initMap();
  
  myMap[1] = 2;                  // NOT OK, because potentially adds a new key
  myMap.at(1) = 2;               // OK, because works only if key is present
  for (auto &amp; element : myMap) {
      element.second = 0;        // OK, values may change
  }
  </code></pre>
  
  <p>I could write my own wrapper for <code>std::map</code>, but I have the feeling that it is something not too uncommon, so I wonder if there is already an existing solution. </p>
  
  <p><strong>Is there some standard idiom for a map that does not allow adding/removing keys, while the values may change?</strong></p>
  
  <p>ps: I know that the title alone is a bit vague, because the keys are already const in a map, but I hope it is clear what I mean...</p>