1

基本上,我有一个映射作为类中的成员变量,我想在基本成员初始化部分中使用键、值对进行初始化。

Parser::Parser()
    :operations() //the dictionary
{

}

我不太确定这样做的语法是什么。我在想类似的事情:

Parser::Parser()
    :operations({"hello","goodbye"},{"foo","bar"}) 
{

}

但这不起作用。

有任何想法吗?

4

1 回答 1

1

您缺少初始化列表:

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()) {}
};
于 2013-03-17T04:42:04.813 回答