我正在尝试初始化地图地图,但我不确定我在做什么错误。以下是示例代码。
static std::map<std::string, std::map<std::string,std::string>> _ScalingMapVolume ={
{"AA",{"busy_timeout","test"}},
{"BB",{"cache_size","10000"}}
};
我得到的错误是;
错误:无法匹配调用'(std :: _ Select1st&lt; std :: pair&lt; const std :: basic_string&lt; char&gt;,std :: basic_string&lt; char&gt;&gt;&gt;)(const char&amp;)'< / p>
答案 0 :(得分:1)
init = {{"AA", {"busy_timeout", "test"}}, ...}
您缺少一组大括号,因为地图的value_type
为std::pair<const std::string, std::map<std::string, std::string>>
。 value_type
的{{1}}是。{1}}
mapped_type
。所以你需要这样使用它。
答案 1 :(得分:1)
{"busy_timeout","test"}
不是地图的价值,而是一对。您需要{{"busy_timeout","test"}}
。
您的代码应如下所示:
static std::map<std::string, std::map<std::string, std::string>> _ScalingMapVolume = {
{"AA", {{"busy_timeout", "test"}}},
{"BB", {{"cache_size", "10000"}}}
};