interesting problem with map<char*, int>
<pre><code>char* a = "aaa";

map&lt;char*, int&gt; m;   
m.insert(pair&lt;char*, int&gt;(a,5));    

a[0] = 'c';
a[1] = 'c';
a[2] = 'c';

cout &lt;&lt; a &lt;&lt; endl; // a = `ccc`
cout &lt;&lt; m["aaa"] &lt;&lt; endl; // found the node by `aaa`,
cout &lt;&lt; m.begin()-&gt;first &lt;&lt; endl; // but the node's left is actually `ccc`?
</code></pre>

<p>So the node's left is <code>ccc</code> or <code>aaa</code>?</p>
