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

Вопрос по std::list - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ элементы структуры http://www.cyberforum.ru/cpp-beginners/thread403428.html
Помогите пожалуйста с примерами, как правильно ссылатся с помощью (.) или ->, напишите пожалуйста хотябы парочку ответов.Потому что я сам никак немогу понять сути . Хеееееееелп Имея следующие...
C++ Службы Windows 7 Всем привет. Не знаю с чего начать даже. В общем на компе стоит Wind7, на Wind7 стоит DHCP сервер DualServer.exe и осуществляется раздача интернета через Virtual wifi . Экспериментально вычислил, что... http://www.cyberforum.ru/cpp-beginners/thread403416.html
C++ Составить программы
1. Дана последовательность действительных чисел a1; a2; ...; an. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей. 2. Даны целые положительные числа a1; a2;...
C++ Как скопировать папку?
Как файлы копировать я знаю, НО вот как скопировать папку со всем её содержимым?
C++ Как скопировать папку? http://www.cyberforum.ru/cpp-beginners/thread403409.html
Как файлы копировать я знаю, НО вот как скопировать папку со всем её содержимым? Добавлено через 2 минуты Сори за дубляж, инет тупит. Удалите пожалуйста )
C++ [вопрос по YACC]Не получается поменять ассоциативность Стартовое правило описано право-рекурсивно list: expr | list expr В списке якка обрабатываеся набор правил, среди которых есть правило типа | expr '+' expr правило всегда выполняется... подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
10.12.2011, 12:37
в общем случае это ошибка.
Итераторы не содержат в себе значения, они ссылаются на то, что хранится в контейнере. После того, как вы удаляете из контейнера что-то по итератору, то, на что ссылается итератор уже удалено. Итератор становится невалидным. Поэтому дальше что-то делать с итератором некорректно. Есть аналогия с указателями: операции с невалидным итератором это как операции с указателем, для которого позвали delete, т.е. операции с мертвым объектом. А операции с мертвыми объектами - это ошибка.
Это у вас было удаление из списка всех елементов с определенным значением. В списке есть также пара других ф-ий удления, которые работают с итераторами
http://www.cplusplus.com/reference/stl/list/erase/
Вот одна из них:
C++
1
iterator erase ( iterator position );
Она вовзвращает валидный итератор и это не просто так. Тот итератор, который ей на вход отдавали после отработки ф-ии становится невалидным.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru