Использование C++ 11, я изначально был 2d вектор следующей формы со значениями по умолчанию:C++ Instantiate 2D вектор внутри Struct со значениями по умолчанию
vector<vector<int>> upper({{1,2,3,4,5,6},{7,8,9,10,11,-1},{12,13,14,15,-1,-1},{16,17,18,-1,-1,-1},{19,20,-1,-1,-1,-1},{21,-1,-1,-1,-1,-1}});
vector<vector<int>> lower({{0,0,0,0,0,0},{0,0,0,0,0,-1},{0,0,0,0,-1,-1},{0,0,0,-1,-1,-1},{0,0,-1,-1,-1,-1},{0,-1,-1,-1,-1,-1}});
Это представляет верхний и нижний компонент головоломки я Я пытаюсь решить. Теперь я хочу изменить мою программу таким образом, чтобы эти векторы были объявлены внутри структуры, но я не уверен, как это сделать и даю значениям вектора по умолчанию 2d. Это то, что я имею на данный момент:
struct BoardState{
vector<int> row;
vector<vector<int>> upper;
vector<vector<int>> lower;
BoardState() : row(6,0), upper(6,row), lower(6,row) {};
};
Но это вызывает ошибку сегм, когда я пытаюсь получить доступ, что внутри, с помощью:
#include <iostream>
#include <vector>
#include <stdlib.h>
BoardState *board;
int main(){
using namespace std;
...
for(int i=0; i<6; i++){
for(int j=0; j<6; j++){
cout << board->upper[i][j] << " ";
}
cout << endl;
}
}
Как дать значения по умолчанию для 2d вектора внутри структура? Благодарю.
Возможный дубликат [gcc warning "будет инициализирован после '] (http://stackoverflow.com/questions/1564937/gcc-warning-will-be-initialized-after) – ArchbishopOfBanterbury