Удаление во время итерации [дублировать] ⇐ C++
-
Anonymous
Удаление во время итерации [дублировать]
возможные дубликаты: < /strong>
vector.erase (итератор) вызывает плохой доступ к памяти
emater Vector, удаляйте определенные элементы по мере продвижения. < /p>
< /blockquote>
hi,
Я написал это, но я получаю некоторые ошибки при запуске < /p>
for (vector< vector >::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... ;(
}
}
< /code>
У меня есть вектор вектора точек (2 int), чьи треки я вызову (1 трек - 1 вектор точек)
Я хочу проверить каждый трек, и если они содержат точки, то удалите первый, в противном случае удалите дорожку. Это правильно? < /P>
Заранее. < /P>
Подробнее здесь: https://stackoverflow.com/questions/390 ... -iterating
возможные дубликаты: < /strong>
vector.erase (итератор) вызывает плохой доступ к памяти
emater Vector, удаляйте определенные элементы по мере продвижения. < /p>
< /blockquote>
hi,
Я написал это, но я получаю некоторые ошибки при запуске < /p>
for (vector< vector >::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... ;(
}
}
< /code>
У меня есть вектор вектора точек (2 int), чьи треки я вызову (1 трек - 1 вектор точек)
Я хочу проверить каждый трек, и если они содержат точки, то удалите первый, в противном случае удалите дорожку. Это правильно? < /P>
Заранее. < /P>
Подробнее здесь: https://stackoverflow.com/questions/390 ... -iterating
Мобильная версия