Top > 標準ライブラリ、STL > mapのchar型

以下の投稿に返信 全 3件

Re: mapのchar型   by t-to-a 2003年9月16日 11:44

 
返信遅れて申しわけございません。

おかげさまで、理由がわかりました。
アドレスを比較していたんですね。
それはそうですね。。。

文字でmapにinsertして、
取り出してから、バイト型に戻すしかないですね。

いつも、ありがとうございます。


Re: mapのchar型   by Gimite 2003年9月13日 20:53

 
文字列を扱う目的ではchar*は使えません。mapでは < 演算子を使って、 !(a<b) && !(b<a) ならばaとbは同じ値とみなします。char*はポインタなので、 < ではアドレスを比較してしまい、うまくいきません。

代わりにstd::stringやAnsiStringを使うと期待通りになります。


mapのchar型   by t-to-a 2003年9月13日 14:02

 
お疲れ様です。
また質問させてください。

ヘッダーファイル(.h)に
map<char*, char*> m_mapAAA;
と宣言し、

実装ファイル(.cpp)に
m_mapAAA.insert(pair<char*, char*>(cSetKey, cSetValue));
と言う感じで、2バイト(0x1234)の値を入れています。

別の関数で
map<char*, char*>::iterator rcv;
と受け皿をつくり、
char cFind[3];
(cFindには2バイト+NULLが入っています)
rcv = m_mapAAA.find(cFind);
で取り出そうとしたのですが、
rcvが空で帰ってきます。

char*型と言うのは使えないのでしょうか?

ご教授していただければ嬉しいです。
よろしくお願いいたします。


  パスワード:   

Top > 標準ライブラリ、STL > mapのchar型