map <k,v> :: \ templace,其中V构造函数需要两个参数

时间:2015-04-30 22:05:38

标签: dictionary emplace

我可以为map :: emplace找到的所有示例都使用相当简单的类型,这些类型具有带有单个参数的构造函数,例如

std::map<std::string, std::string> foo;
foo.emplace("a", "b");

假设值类型构造函数需要两个参数。哎呀,让我们真的变得简单;假设值类型为std::pair<std::string, double>。如何使用std::map<string, pair<string, double> >::emplace()在地图中就地构建值类型?

我知道这不起作用:

std::map<std::string, std::pair<std::string, double> > foo;
foo.emplace("a", "b", 1.0);

至少,它在g ++ 4.8.2上大声失败。这甚至可以用C ++ 11吗?

0 个答案:

没有答案