title: unordered_multimap - iterating the result of find() yields elements with different value
body: <p>The multimap in C++ seems to work really odd, i would like to know why</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;unordered_map&gt;
  
  using namespace std;
  
  typedef unordered_multimap&lt;char,int&gt; MyMap;
  
  int main(int argc, char **argv)
  {
      MyMap map;
      map.insert(MyMap::value_type('a', 1));
      map.insert(MyMap::value_type('b', 2));
      map.insert(MyMap::value_type('c', 3));
      map.insert(MyMap::value_type('d', 4));
      map.insert(MyMap::value_type('a', 7));
      map.insert(MyMap::value_type('b', 18));
  
      for(auto it = map.begin(); it != map.end(); it++) {
          cout &lt;&lt; it-&gt;first &lt;&lt; '\t';
          cout &lt;&lt; it-&gt;second &lt;&lt; endl;
      }
  
      cout &lt;&lt; "all values to a" &lt;&lt; endl;
      for(auto it = map.find('a'); it != map.end(); it++) {
          cout &lt;&lt; it-&gt;first &lt;&lt; '\t' &lt;&lt; it-&gt;second &lt;&lt; endl;
      }
  
  }
  </code></pre>
  
  <p>this is the output:</p>
  
  <pre><code>c   3
  d   4
  a   1
  a   7
  b   2
  b   18
  all values to a
  a   1
  a   7
  b   2
  b   18
  </code></pre>
  
  <p>why does the output still contain anything with b as the key when I am explicitly asking for 'a'? Is this a compiler or stl bug?</p>