задание), там есть свой кастомный итератор, это подкласс списка. Когда я присваиваю переменной итератору начало списка, то-есть begin(), а потом удаляю этот элемент через delete, все операции списка, такие как просмотр списка, поиск в списке и т.д. говорят о том, что элемент удалён (то-есть нормально работают), но вот итератор всё равно показывает по адресу содержимое, что свидетельствует о том, что указатель не nullptr, хотя, после удаления я сразу делаю присвоение к nullptr. В чём дело, не подскажите? Итератор внутри тоже содержит переменную указатель элемента, которой идёт присвоение указателя списка.
Всё как и в обычном std списке, erase может инвалидировать итератор. Он просто смотрит на элемент через указатель и нет магии которая при удалении элемента как либо повлияет на все копии указателей.
Да я уже понял в чём ошибка была, адрес же nullptr быть не может, только переменная
Обсуждают сегодня