Ich bin ziemlich neu in C++ und ich suche nach Hilfe, wie ich auf Datenspeicher in einer Liste zugreifen kann. Ich speichere gerade den Zug eines Spielers, der durch einen Vektor von Vektoren in einer Liste dargestellt wird.Zugriff auf in einer Llist gespeicherte Daten
std::vector<std::vector<int> > move1;
std::vector<std::vector<int> > move2;
std::vector<std::vector<int> > move3;
std::vector<std::vector<int> > move4;
std::list<vector<vector<int>>> moveList;
void PuzzleBoard::NextPossibleMove()
{
//assigns the current board state to a temp hold var
nextBoard = board;
//A switch statement to attempt to move in each direction once
for (int i = 1; i < 5; i++) {
switch (i) {
case 1: {
//attempts to move zero up
MoveZero(1, userPS);
//stores the board after the move
move1 = board;
//Add the vector of vectors move1 to the list variable moveList
moveList.push_back(move1);
//Resets the board to its original state
board = nextBoard;
break;
}
case 2: {
//attempts to move zero down
MoveZero(2, userPS);
//stores the board after the move
move2 = board;
//Add the vector of vectors move2 to the list variable moveList
moveList.push_back(move2);
//Resets the board to its original state
board = nextBoard;
break;
}
case 3: {
//attempts to move zero left
MoveZero(3, userPS);
//stores the board after the move
move3 = board;
//Add the vector of vectors move3 to the list variable moveList
moveList.push_back(move3);
//Resets the board to its original state
board = nextBoard;
break;
}
case 4: {
//attempts to move zero right
MoveZero(4, userPS);
//stores the board after the move
move4 = board;
//Add the vector of vectors move4 to the list variable moveList
moveList.push_back(move4);
//Resets the board to its original state
board = nextBoard;
break;
}
{
default:
break;
}
}
}
}
Sobald ich den Vektor der Vektoren bewegen in der Liste habe ich nicht wissen, wie Sie auf sie zugreifen. Ich habe versucht, diese:
void PuzzleBoard::PrintMovesFromList()
{
for (std::list<int>::iterator iter = moveList.begin(); iter < moveList.end(); iter++) {
cout << *iter << endl;
}
Jedoch sagt es keine Bewegungsliste Conversion-Typen hat es auf diese Weise zu tun. Ich habe auch versucht diese:
void PuzzleBoard::PrintMovesFromList()
{
for (std::list<vector<vector<int>>>::iterator iter = moveList.begin(); iter < moveList.end(); iter++) {
cout << *iter << endl;
}
Aber es sagt, es gibt kein Betreiber für < entspricht.
Grundsätzlich möchte ich die Bewegungen des Spielers speichern (die immer als Vektor von Vektoren dargestellt werden) in einer Liste und nachdem das Spiel vorbei ist möchte ich auf den Vektor der Vektoren in der Liste zum Drucken zugreifen sie auf den Bildschirm. Ich habe mehrere Seiten über die Verwendung von Listen durchsucht, aber ich habe keine Website durchsucht, die ein Beispiel dafür gibt, was ich versuche zu tun. Kann mir jemand in die richtige Richtung zeigen oder erklären, wie ich auf die gespeicherten Daten auf die Art und Weise zugreifen kann, wie ich es versuche? Jede Hilfe wäre dankbar, danke.
ändern 'iter