Удаление во время итерации [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Удаление во время итерации [дублировать]

Сообщение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»