次のマップされた multimap があります。
map<int, multimap<int, pair<string, string>>> modCreAlt;
私はそれに行を挿入しようとしています:
int priority = ... ;
string alertInv = ... ;
string upperAlertInv = ... ;
modCreAlt.insert(make_pair(42, make_pair(priority, make_pair(alertInv, upperAlertInv))));
しかし、次のコンパイル エラーが発生します。
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\utility(49):
エラー C2664: 'std::multimap<_Kty,_Ty>::multimap(const std::less<_Kty> &) ':
パラメーター 1 を 'const std::pair<_Ty1,_Ty2>' から 'const std::less<_Ty> &' に変換できません
----
私もそのように行を挿入しようとしました:
modCreAlt.insert(pair<int, multimap<int, pair<string, string>>>(42, make_pair(priority, make_pair(alertInv, upperAlertInv))));
と :
modCreAlt[42] = make_pair(priority, make_pair(alertInv, upperAlertInv));
それぞれ、次の 2 つのコンパイル エラーが発生します。
エラー C2665: 'std::pair<_Ty1,_Ty2>::pair': 3 つのオーバーロードのいずれも、すべての引数の型を変換できませんでした
と :
エラー C2679: バイナリ '=' : 型 'std::pair<_Ty1,_Ty2>' の右側のオペランドを取る演算子が見つかりません (または、受け入れ可能な変換がありません)