[英]Initializing a vector of vectors of ints in C++17
我嘗試使用以下線程中的解決方案在具有固定大小的類中創建向量向量,但無濟於事。 使用 boost 分配初始化具有固定大小的向量的向量
由於它已有 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() { }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.