Я пишу игру на змею на основе Allegro и имею проблему с вектором, который содержит координаты частей змеи.Ошибка векторного итератора
Вот функция, которая удаляет последний элемент змеи и добавляет новый. Ранее я объявил vector <int> snake_x ; vector <int> snake_y;
, и я также отбросил требуемые числа в векторе.
void moove_snake(int direction){
switch (direction){
case UP:
{
vector <int>::iterator xIter;
vector <int>::iterator yIter;
snake_x.erase(snake_x.begin());
snake_y.erase(snake_y.begin());
xIter=snake_x.end();
yIter=snake_y.end();
snake_x.push_back(*xIter);
snake_y.push_back(*yIter-20);
draw();
al_flip_display();
al_rest(0.4);
break;
}
case DOWN:
{
vector <int>::iterator xIter;
vector <int>::iterator yIter;
snake_x.erase(snake_x.begin());
snake_y.erase(snake_y.begin());
xIter=snake_x.end();
yIter=snake_y.end();
snake_x.push_back(*xIter);
snake_y.push_back(*yIter+20);
draw();
al_flip_display();
al_rest(0.4);
break;
}
case LEFT:
{
vector <int>::iterator xIter;
vector <int>::iterator yIter;
snake_x.erase(snake_x.begin());
snake_y.erase(snake_y.begin());
xIter=snake_x.end();
yIter=snake_y.end();
snake_x.push_back(*xIter-20);
snake_y.push_back(*yIter);
draw();
al_flip_display();
al_rest(0.4);
break;
}
case RIGHT:
{
vector <int>::iterator xIter;
vector <int>::iterator yIter;
snake_x.erase(snake_x.begin());
snake_y.erase(snake_y.begin());
xIter=snake_x.end();
yIter=snake_y.end();
snake_x.push_back(*xIter+20);
snake_y.push_back(*yIter);
draw();
al_flip_display();
al_rest(0.4);
break;
}
}
}
Когда я запустить исполняемый файл он открывает окно с сообщением об ошибке, что вектор итератор не разыменовываемыми. Что это значит ?