地图初始化地图

时间:2014-04-17 10:17:06

标签: c++ c++11 dictionary std stdmap

我正在尝试初始化地图地图,但我不确定我在做什么错误。以下是示例代码。

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>

2 个答案:

答案 0 :(得分:1)

init = {{"AA", {"busy_timeout", "test"}}, ...}

您缺少一组大括号,因为地图的value_typestd::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"}}}
};