title: Checking value exist in a std::map - C++
body: <p>I know <em>find</em> method finds the supplied key in <em>std::map</em> and return an iterator to the element. Is there anyway to find the value and get an iterator to the element? What I need to do is to check specified value exist in std::map. I have done this by looping all items in the map and comparing. But I wanted to know is there any better approach for this.</p>
  
  <p>Here is what I have wrote</p>
  
  <pre><code>bool ContainsValue(Type_ value)
  {
      bool found = false;
      Map_::iterator it = internalMap.begin(); // internalMap is std::map
      while(it != internalMap.end())
      {
          found = (it-&gt;second == value);
          if(found)
              break;
          ++it;
      }
      return found;
  }
  </code></pre>
  
  <p><strong>Edit</strong></p>
  
  <p>How about using another map internally which stores value,key combination. So I can call find on it? Is <em>find()</em> in std::map doing sequential search?</p>
  
  <p>Thanks</p>