Вот мой код:
ошибка C2664: MultiMap на карте
map<string, multimap<string, string>> mp;
string str1 = "abc";
string str2 = "def";
string str3 = "ghi";
mp.insert(str1, {str2, str3});
Я получил ошибка C2664:
'void std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::insert(std::initializer_list<std::pair<const _Kty,_Ty>>)' : cannot convert argument 1 from 'std::string' to 'std::_Tree_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const _Kty,_Ty>>>>' c:\users\thomas\documents\visual studio 2013\projects\test\test\main.cpp 14 1 test
Кажется, что я должен использовать make_pair
поэтому я стараюсь так:
mp.insert(std::make_pair(str1, std::make_pair(str2, str3)));
Но я все равно получаю ту же ошибку.
Что мне делать?
Ваш ответ очень помогает. Благодарю. – Yves
'mp.insert ({str1, multimap {{str2, str3}}});' Это работает. Можете ли вы рассказать мне, почему это 'multimap {{str2, str3}}' вместо 'multimap {str2, str3}'? –
Yves
ах, я понял. Теперь я понимаю о '{}' в C++ 11. : D – Yves