Да, это приведет к неопределенному поведению.Как только вы erase
итератор списка, вы аннулируете итератор, что означает, что объект, на который он ссылается, больше не гарантируется как действительный.Это означает, что если вы затем попытаетесь использовать итератор в любом контексте, в том числе попытаться разыменовать значение, чтобы снова добавить его в список, это приведет к неопределенному поведению, которое может вызвать сбой программы, перезаписать важную память или ничего не делать.
Если вы хотите переместить элемент списка назад, рассмотрите возможность использования метода splice
списка:
myList.splice(myList.end(), myList, it);
Это перемещает элемент в конец без копирования.