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 に答える