c++ - 在 C++17 中初始化整数向量的向量
问题描述
我尝试使用以下线程中的解决方案在具有固定大小的类中创建向量向量,但无济于事。使用 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() { }
推荐阅读
- excel - If Else 有多个条件
- spring - 根据更新请求查找更新的字段
- linux - 如何将此格式字符串转换为 CSV?
- python - 保存对表的引用时出现无效令牌错误
- swift - SCNCamera.exposureOffset 在 iOS13 中不起作用
- android - 无法在 appium 中使用 Content-desc 单击按钮
- reactjs - 在单个博文模板中显示作者
- python-3.x - 来自 pandas_datareader 的连接数据
- performance - ReactNative 导航 - 寻找动态加载许多屏幕的最佳方式?
- apache - 将 .htacess 转换为 nginx 配置