Удаление элемента массива
arr.erase(it) - удаление элемента. Метод erase() удаляет элемент, на который указывает итератор it.
После arr.erase(it) it становится НЕВАЛИДНЫМ (указывает на удаленный участок памяти)!
После удаления элемента, итератор it "висит" в воздухе и указывает на удаленную память. Использование такого итератора приводит к неопределенному поведению (программа может упасть или работать неправильно).
it = arr.erase(it) - метод erase() возвращает новый валидный итератор на элемент, следующий за удаленным, и этот итератор необходимо присвоить it.