如何在c ++中插入值c ++ map std :: map <string,=“”list <string =“”>?

时间:2015-12-30 09:32:57

标签: list c++11 dictionary std-pair

我正在尝试在map中插入一个值,其中map的键是string,value是list。 当我尝试插入时,我收到错误。

#include <iostream>
#include <utility>
#include <vector>
#include <map>
#include <string>
using namespace std;
main()
{
     string key = "myKey";
     string str1 = "str1";

     map<string, list<string>> myMap;
     myMap.insert( make_pair (key, str1));

 }

错误

错误2错误C2664:'std :: pair&lt; _Ty1,_Ty2&gt; std :: _ Tree&lt; _Traits&gt; :: insert(std :: pair&amp;&amp;)':     无法从'std :: pair&lt; _Ty1,_Ty2&gt;'转换参数1到'std :: pair&lt; _Ty1,_Ty2&gt; &安培;&安培;”

帮助表示赞赏!!

1 个答案:

答案 0 :(得分:3)

你有一个std::map,它接受​​一个字符串,一个列表作为值。 您正在尝试向其传递一个字符串和字符串作为值的问题。

main()
{
     string key = "myKey";
     string str1 = "str1";
     list<string> l;

     l.push_back( str1 );

     map<string, list<string>> myMap;
     myMap.insert( make_pair (key, l)); // pass a list here

    return 0;
}