3
我可以为map :: emplace找到的所有示例都使用相当简单的类型,它们的构造函数只接受一个参数,例如,map <K,V> :: emplace其中V构造函数需要两个参数
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吗?
如何foo.emplace(标准:: make_pair( “A”,的std :: make_pair( “B”,1.0))); –