[[Programming]] [[ここ:http://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=91]]より引用. c++ の map では,文字列を扱う目的ではchar*は使えません。mapでは < 演算子を使って、 !(a<b) && !(b<a) ならばaとbは同じ値とみなします。char*はポインタなので、 < ではアドレスを比較してしまい、うまくいきません。 代わりにstd::stringやAnsiStringを使うと期待通りになります。 char[] から string への変換 char[] charBuf = new char[1024]; // char配列を生成 string s = string.Empty; //空のstring生成 s = new string(charBuf); // char[] を引数にしてstring をnew する