>>657
そりゃ、文字列の内容が同じでも、同じアドレスにあるとは限らん。
リテラルと変数だったら、まず一致しないだろう。

こうしたらどうよ。

typedef std::map <std::string , int> HOGE;
HOGE hoge;
hoge[std::string("test")] = 1;