Почему следующий print 2
?
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;
Я знаю, что возвращает erase
, но мне интересно, почему это нормально? Или это не определено, или это зависит от компилятора?