title: Renaming first and second of a map iterator
body: <p>Is there any way to rename the first and second accessor functions of a map iterator.  I understand they have these names because of the underlying pair which represents the key and value, but I'd like the iterators to be a little more readable.  I think this might be possible using an iterator adaptor, but I'm not sure how to implement it.</p>
  
  <p>Please note that I can't use boost.</p>
  
  <p>Example of what I mean:</p>
  
  <pre><code>map&lt;Vertex, Edge&gt; adjacency_list;
  for(map&lt;Vertex, Edge&gt;::iterator it = adjacency_list.begin();
      it != adjacency_list.end();
      ++it)
  {
      Vertex v = it-&gt;first;
      //instead I would like to have it-&gt;vertex
  }
  </code></pre>