Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将元素插入到多重贴图中? 我想在C++中设置 MultIMAP < /C> >如下: multimap<pair<string, string>, vector<double> > mmList; multimap mmList;_C++_Dictionary_Insert_Containers_Multimap - Fatal编程技术网

如何将元素插入到多重贴图中? 我想在C++中设置 MultIMAP < /C> >如下: multimap<pair<string, string>, vector<double> > mmList; multimap mmList;

如何将元素插入到多重贴图中? 我想在C++中设置 MultIMAP < /C> >如下: multimap<pair<string, string>, vector<double> > mmList; multimap mmList;,c++,dictionary,insert,containers,multimap,C++,Dictionary,Insert,Containers,Multimap,但是我怎样才能在其中插入数据呢?我尝试了以下代码,但无法编译: mmList.insert(pair<string, string>, vector<double>("a", "b", test)); mmList.insert(成对向量(“a”、“b”、test)); 您可以使用std::make_pair(a,b)构造对。通常,可以将对插入到贴图/多重贴图中。在您的情况下,您必须构造一个由字符串对和向量组成的对: std::multimap<std::

但是我怎样才能在其中插入数据呢?我尝试了以下代码,但无法编译:

mmList.insert(pair<string, string>, vector<double>("a", "b", test));
mmList.insert(成对向量(“a”、“b”、test));

您可以使用
std::make_pair(a,b)
构造对。通常,可以将对插入到贴图/多重贴图中。在您的情况下,您必须构造一个由字符串对和向量组成的对:

    std::multimap<std::pair<std::string, std::string>, std::vector<double> > mmList;

    std::vector<double> vec;
    mmList.insert(std::make_pair(std::make_pair("a","b"), vec));
std::多映射mmList;
std::vec;
mmList.insert(std::make_pair(std::make_pair(“a”、“b”),vec));
以下是示例:

std::multimap<std::string,std::string> Uri_SessionId_Map;
std::string uri = "http";
std::string sessId = "1001";
std::pair<std::string,std::string> myPair(uri,sessId);
Uri_SessionId_Map.insert(myPair);
std::multimap Uri\u SessionId\u Map;
std::stringuri=“http”;
std::string sessiond=“1001”;
std::pair myPair(uri,sessiond);
Uri_SessionId_Map.insert(myPair);
为了提高可读性,我们把几行文字分开了。你可以理解如何配对。pair必须具有与multimap相同的模板化形式。

因为您可以使用来摆脱一个std::make_pair(),而不是:

此代码不再较短,但不会调用不必要的构造函数。这些对象直接从给定参数在
std::multimap
中创建

std::multimap<std::pair<std::string, std::string>, std::vector<double>> mmList;
std::vector<double> test = { 1.1, 2.2, 3.3 };
mmList.emplace(std::make_pair("a", "b"), test);
mmList.emplace(std::piecewise_construct,
    std::forward_as_tuple("a", "b"),
    std::forward_as_tuple(test));