我如何安慰std::map<std::string, std::map<std::string,std::string>>
?
尝试使用myMap.emplace(std::make_pair("STRING", std::make_pair("STR","STR")))
但收到错误消息cannot convert std::pair<_Ty1,_Ty2> to const std::pair<_Ty1,_Ty2>
答案 0 :(得分:0)
myMap.emplace(
std::make_pair(
"STR1"
, std::map< std::string, std::string>(
{
std::make_pair("STR2", "STR3")
}
)
)
);
应该工作。
答案 1 :(得分:0)
使用std::piecewise_construct
您可emplace()
如下
myMap.emplace(
std::piecewise_construct,
std::forward_as_tuple("STRING"),
std::forward_as_tuple(
std::initializer_list<std::pair<std::string const, std::string>>{
{"STR", "STR"} }));
但是我认为在将"STR"
放入其中之后立即安置一张空白地图并立即安置,如下所示
myMap.emplace(std::piecewise_construct,
std::forward_as_tuple("STRING"),
std::forward_as_tuple()).first->second.emplace("STR", "STR");