title: C++ counting instances / histogram using std::map
body: <p>I have seen sample code similar to the following:</p>
  
  <pre><code>std::string s = "Hello World!";
  std::map&lt;char, std::size_t&gt; h;
  
  for (std::string::const_iterator i=s.cbegin(); i!=s.cend(); ++i)
  {
      ++h[*i];
  }
  
  assert(h['l'] == 3);
  </code></pre>
  
  <p>This seems to rely on the value type being zeroed on the first occurence of each letter.  Is this guaranteed even when using something like a <code>std::size_t</code> which has no default constructor resetting it to zero?</p>