掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列をコンテナに格納するには? (ID:68245)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
επιστημηさん、ありがとうございます。 > std::pair<int, LPCTSTR> の second は"ただのポインタ" であることを忘れずに。 なるほど、ポインタの寿命が切れているということでしょうか。 なんとか std::pair<int, TCHAR[_MAX_PATH]> のようなことが出来ませんでしょうか? 使うと、 cannot specify explicit initializer for arrays see declaration of 'second と表示されてしまいます。 恐らく、"配列は使えません"のような意味だと思います。 プログラムは結構大きく、Insertメソッドを呼ぶ側は TCHAR filePath[_MAX_PATH] を渡しています。 > map<int,std::string> あるいは map<int,std::wstring> 使うが無難です。 #include <string> #include <map> typedef std::string String; typedef std::map<int, String> StrMap; として、Insert を void cHSP::InsertEZMenu(int id, LPCTSTR filePath) { String str(filePath); menuMap.insert(std::pair<int, String>(id, str)); } とすると、見事取得も成功しました! 調べながらで、変なコードかも知れません(すみません)。 しかし、なぜ std::string だと大丈夫なのでしょうか? Insert関数のスコープを抜けた時に、stringのデストラクタが 動くような気がするのですが・・・ それとも最初からスコープの問題ではないのでしょうか? 宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.