基本上,我有一个映射作为类中的成员变量,我想在基本成员初始化部分中使用键、值对进行初始化。
Parser::Parser()
:operations() //the dictionary
{
}
我不太确定这样做的语法是什么。我在想类似的事情:
Parser::Parser()
:operations({"hello","goodbye"},{"foo","bar"})
{
}
但这不起作用。
有任何想法吗?
基本上,我有一个映射作为类中的成员变量,我想在基本成员初始化部分中使用键、值对进行初始化。
Parser::Parser()
:operations() //the dictionary
{
}
我不太确定这样做的语法是什么。我在想类似的事情:
Parser::Parser()
:operations({"hello","goodbye"},{"foo","bar"})
{
}
但这不起作用。
有任何想法吗?
您缺少初始化列表:
Parser::Parser()
:operations({{"hello","goodbye"},{"foo","bar"}})
{
}
这也应该有效:
Parser::Parser()
:operations{{"hello","goodbye"},{"foo","bar"}}
{
}
演示在这里。
编辑:这是一个应该在VS下工作的替代方案:
struct a {
std::map<int, int> x;
static std::map<int, int> make_map() {
std::map<int, int> some_map = {{1,2}, {3,4}};
return some_map;
}
a() : x(make_map()) {}
};