лядь, там про std::map, тут откуда-то std::list::erase взялся...
уж и не знаю как вам втолковать. Наверное лучше прямо стандарт почитать. Там главка есть про каждый контейнер. Если почувствуете что теряетесь, то поищите поиском слово invalidate.
так мб перестать "втолковывать" одно и то же кругами - про валидность и невалидность итераторов? прочтите внимательно оригинальный вопрос треда - там речь об указателях на объекты, а не об итераторах. хоть в общем случае итератор - это унифицированная надстройка над указателем на ячейку, хранящую объект, и в частном случае адрес ячейки равен адресу самого объекта, но (в зависимости от типа объекта и/или типа контейнера) адрес ячейки может быть равен адресу указателя на объект...или на слайс, или ещё на что-нибудь - я и вывел "общий ответ" выше...
далее, std::list - это банальный двунаправленный список - тут и ежу понятно, что удаление произвольной ноды никоим образом не влияет на цикл жизни остальных нод того же списка - так какой интерес всюду приводить его в пример? да и какая связь с указателями, опять же? std::map уже интереснее - там сбалансированное дерево (которое я, честно говоря, уже с трудом вспоминаю) - и вот есть в документации строка
Map has the important property that inserting a new element into a map does not invalidate iterators that point to existing elements.
, которая, опять-таки, совершенно не проливает свет на вопрос об указателях...ладно, пустое...
вкратце: допустим, Igors'у изначально ну позарез нужно было хранить указатель на объект (скажем, в некотором другом контейнере), Вы ему предлагаете забыть про указатели и хранить вместо них итераторы? хорошо, общий ответ: для ряда случаев и контейнеров итераторы - то, что вам нужно; для другого ряда - не совсем то; указатели - чаще совсем не то.
консенсус? тему можно закрывать?