How to force std::map::find() to search by value
<p>From what I have deduced, the std::map::find() method searches the map by comparising pointer address instead of values. Example:</p>

<pre><code>std::string aa = "asd";
const char* a = aa.c_str();
const char* b = "asd";
// m_options is a std::map&lt;const char*, int )
m_options.insert( std::make_pair( a, 0 ) );
if( m_options.find( b ) != m_options.end() ) {
    // won't reach this place
}
</code></pre>

<p>I am kinda surprised (because I am using primitive types instead of some class) and I think that I have done something wrong, if not then how to force it to use value instead of address?</p>
