0
我有以下映射多重映射:如何填充映射的多圖?
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):
error C2664:'std :: multimap < _Kty,_Ty> :: multimap(const s TD ::少< _Kty> &)」:
不能從轉換參數1 '常量性病::對< _Ty1,_Ty2>' 到 '常量性病::少< _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 ::對< _Ty1,_Ty2> ::對':無3個重載可以轉換所有的參數類型
和:
錯誤C2679:二進制 '=':沒有操作員發現這需要類型的右邊的操作數 '的std ::對< _Ty1,_Ty2>'(或沒有可接受轉換)
你從來沒有創建一個multimap。 – john 2013-04-26 12:49:43
正如@john所說:最外層對的第二個元素必須是'multimap',而不是'pair'。 – Angew 2013-04-26 12:51:56