title: What is mapped_type and key_type?
body: <p>I have a piece of code which says</p>
  
  <pre><code>typedef std::map&lt;std::string, size_t&gt;   name_map_type;
  typedef name_map_type::mapped_type  name_map_mt;
  typedef name_map_type::key_type     name_map_kt;
  </code></pre>
  
  <p>I am unable to figure out what exactly <code>mapped_type</code> and <code>key_type</code> means? Does <code>key_type</code> relate to the data type of key, which is <code>string</code> here and <code>mapped_type</code> relate to <code>size_t</code> or is it something else?</p>