Я довольно новичок в C++, и я ищу некоторую помощь в том, как я могу получить доступ к хранилищу данных в списке. В настоящее время я сохраняю перемещение игрока, которое представлено вектором векторов в списке.Доступ к данным, хранящимся в Llist
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;
}
}
}
}
Как только вектор векторов перемещается в списке, я не знаю, как к ним обращаться. Я попытался это:
void PuzzleBoard::PrintMovesFromList()
{
for (std::list<int>::iterator iter = moveList.begin(); iter < moveList.end(); iter++) {
cout << *iter << endl;
}
Тем не менее, говорит moveList не имеет тип преобразования, чтобы сделать это таким образом. Я также попытался это:
void PuzzleBoard::PrintMovesFromList()
{
for (std::list<vector<vector<int>>>::iterator iter = moveList.begin(); iter < moveList.end(); iter++) {
cout << *iter << endl;
}
Тем не менее, говорит, что есть ни один оператор не соответствует для <.
В принципе, я хочу сохранить перемещения, которые игрок делает (который всегда будет представлен как вектор векторов) в списке, а после окончания игры я хочу получить доступ к вектору векторов, хранящихся в списке, для печати их на экран. Я искал несколько сайтов об использовании списков, однако я не перешел ни на какой сайт, дающий пример того, что я пытаюсь сделать. Может ли кто-нибудь указать мне в правильном направлении или объяснить, как я могу получить доступ к сохраненным данным так, как я пытаюсь? Любая помощь будет оценена благодаря вам.
Изменение 'ИТЭР