c++ - 在 C++17 中初始化整数 vector 的 vector

标签 c++ c++17 stdvector

我曾尝试使用以下线程中的解决方案在具有固定大小的类中创建 vector 的 vector ,但无济于事。 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() { }

关于c++ - 在 C++17 中初始化整数 vector 的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64249728/

相关文章:

c++ - 为什么不建议使用宏符号常量来定义固定长度的数组?

c++ - 当不应调用构造函数时,复制参数会调用已删除的构造函数

c++ - 如何在给定的 vector 索引范围内找到最小元素?

c++ - 有没有办法用 nlohmann_json 库序列化异构 vector ?

c++ - 如何使用OpenCV的归一化相关性?

c++ - 尝试使用模板声明编译 prog 时出现链接器错误 LNK2019

c++ - 需要模板的特定特化作为模板参数

c++ - 未知自定义结构上的结构化绑定(bind)

c++ - 指向 vector 元素的持久指针代替 'this'

c++ - 根据优先级按字典顺序对 vector 列表进行排序