在 C++17 中初始化整数向量的向量

Initializing a vector of vectors of ints in C++17

我尝试使用以下线程中的解决方案在 class 中创建一个固定大小的向量向量,但无济于事。 Initializing a vector of vectors having a fixed size with boost assign

因为它已有 7 年历史,我认为这可能与 C++17 的更改有关,但我不确定问题出在哪里。 IDE 告诉我的错误是第一个参数“需要类型说明符”。查看构造函数的文档,似乎没有错,除非我遗漏了什么。

class SudokuSolver {

public:
    SudokuSolver() {}

    ~SudokuSolver() {}

private:
    std::vector<std::vector<int>> sudoku_field(9, std::vector<int>(9, 0));
};

您可以使用波浪括号让编译器知道您正在尝试调用构造函数:

std::vector<std::vector<int>> sudoku_field{9, std::vector<int>(9, 0)};

或者,您可以在默认构造函数的初始化列表中完成这项工作:

SudokuSolver() : sudoku_field(9, std::vector<int>(9, 0)) {}

然后 运行 您创建的每个新构造函数中的默认构造函数,以确保得到设置:

SudokuSolver(int thing) : SudokuSolver() { }