我有以下映射的多图:
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>”类型的右侧操作数的运算符(或没有可接受的转换)