Возможные дубликаты:
Vector.erase(Iterator) вызывает плохой доступ к памяти
итерация вектора, удаление некоторых элементов по ходу.
Привет, Я написал это, но при запуске я получаю некоторые ошибки.
for (vector< vector<Point> >::iterator track = tracks_.begin(); track != tracks_.end(); track++) {
if (track->empty()) { // if track is empty, remove it
tracks_.erase(track);
track++; // is this ok?
}else { //if there are points, deque
track->erase(track->begin()); //my program crashes here after a while... ;(
}
}
У меня есть вектор вектора точек (2 ints), который я называю треками (1 трек - 1 вектор точек) Я хочу проверить каждый трек, и если они содержат точки, то удалите первый, иначе удалите трек. Правильно ли это?
Спасибо заранее.