私はstd::map
を使い始めたばかりで、最近使い始めました。
これらのマッピングの 1 つでコンパイルの問題に直面しています。
CString
カスタム構造があり、その構造タイプのオブジェクトを使用して のマッピングを作成しようとしています。
残念ながら、私は問題に直面しています
Error 3 error C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'ItemInfo *' to 'const std::pair<_Ty1,_Ty2> &'
ItemInfo
を使用してマッピングを定義しようとしている構造ですCString
。
これは私がマッピングを定義する方法です..
struct ItemInfo
{<some code>}
class XXXX
{
std::map<CString, ItemInfo> myMap;
}
これを正確に解決する方法、または何を見なければならないかわかりません。
このエラーが何であるか、またどのように解決できるか教えていただければ幸いです。
編集
insert()
OK - よく検索しましたが、関数にエラーが表示されませんでした。これは私が使用するものです:
mAlarmListMpa.insert(tempIterator /*the iterator over the map */, std::pair<CString, ItemInfo>(tagname , info));
出力からの編集 ビット詳細情報:
`
c:\program files (x86)\microsoft visual studio 10.0\vc\include\xmemory(208): エラー C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : パラメーター 1 を 'ItemInfo' から 'const std::pair<_Ty1,_Ty2> &' 1> に変換できません 1> [ 1> _Ty1=const CString, 1> _Ty2=ItemInfo 1> ] 1> 理由: 1> [ 1> _Ty1=const CString, 1> _Ty2=ItemInfo 1> ] 1> では、'ItemInfo' から 'const std::pair<_Ty1,_Ty2>' 1> に変換できません。ユーザー定義の変換演算子はありませんこの変換を実行できる演算子が利用可能であるか、または演算子を呼び出すことができません `