¿No borra std :: list :: iterator invalida el iterador y destruye el objeto?
¿Por qué imprime lo siguiente2
?
list<int> l;
l.push_back( 1 );
l.push_back( 2 );
l.push_back( 3 );
list<int>::iterator i = l.begin();
i++;
l.erase( i );
cout << *i;
Yo se queerase
regresa, pero me pregunto por qué esto está bien. ¿O no está definido o depende del compilador?