Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Удаление элемента вектора в цикле. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача 1567. SMS-спам и проблема двух решений http://www.cyberforum.ru/cpp-beginners/thread359187.html
Собственно задача: http://acm.timus.ru/problem.aspx?space=1&num=1567 Проблема в том, что моё решение со switch'ем даёт правильные результаты, в том числе правильно считает пример, но он-лайн...
C++ Работа с файлами, Алгоритм не могу продумать. 1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и знаками препинания. Расставить фразы в этом файле в порядке увеличения количества слов в каждой из них. ... http://www.cyberforum.ru/cpp-beginners/thread359185.html
C++ Интересное поведение cin.getline();
Доброго времени суток! Я не устаю терроризировать форум своими тупыми вопросами, но для этого он и создан. На этот раз у меня проблема с методом getline(); Имеется код: switch(menuNumber){ case...
Проблема с очисткой памяти C++
Здравствуйте! Помогите пожалуйста исправить проблему с очисткой памяти в void memfree(). Заранее спасибо. #include "stdafx.h" #include <windows.h> #include "resource.h" #include <string> #define...
C++ дайте наводку, программисты и математики, как делать задачу подобного типа http://www.cyberforum.ru/cpp-beginners/thread359171.html
Условие задачи: Найти максимальное значение, которое может быть представлено при использовании типа unsigned char :pardon: P.S.: Нужно написать соответствующую программу
C++ Трабла с прогой "дан радиус окружности. Найти длину окружности и площадь круга" как вычислить подобную задачу на С. Жду ответа. С уважением. подробнее

Показать сообщение отдельно
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 08:56
Удаляя элемент из вектора, все итераторы становятся некорректными, поэтому ты не можешь использовать те же итераторы для продолжения обхода. Потому и валится у тебя.
Вообще, вектор не очень подходит для подобного использования, лучше используй список.
Цитата Сообщение от ZaxarPal Посмотреть сообщение
Но не понял как правильно решить проблему удаления элемента.
C++
1
itr = List.erase(itr);
Но есть проблема. После удаления, тебе нужно перейти к следующей итерации без инкремента итератора. --itr может помочь, но после удалении первого элемента могут быть проблемы.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru