mit C++ 11, ich hatte zunächst einen 2D-Vektor der mit Standardwerten folgende Form:C++ Instanziieren 2D-Vektor innerhalb Struct mit Standardwerten
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}});
Dies repräsentiert die obere und untere Komponente eines Puzzles I versuche zu lösen. Jetzt möchte ich mein Programm so ändern, dass diese Vektoren innerhalb einer Struktur deklariert werden, aber ich bin mir nicht sicher, wie dies zu tun ist und geben den 2d-Vektoren Standardwerte. Dies ist, was ich im Moment habe:
struct BoardState{
vector<int> row;
vector<vector<int>> upper;
vector<vector<int>> lower;
BoardState() : row(6,0), upper(6,row), lower(6,row) {};
};
Aber es verursacht einen seg Fehler, wenn ich versuche den Zugriff auf, was drin ist, mit:
#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;
}
}
Wie kann ich die Standardwerte zu einem 2D-Vektor geben innen eine Struktur? Vielen Dank.
Mögliches Duplikat von [gcc warning "'wird nach' initialisiert] (http://stackoverflow.com/questions/1564937/gcc-warning-will-be-initialized-after) – ArchbishopOfBanterbury