std::vector<int> ints;
// ... fill ints with random values
for(std::vector<int>::iterator it = ints.begin(); it != ints.end(); )
{
if(*it < 10)
{
*it = ints.back();
ints.pop_back();
continue;
}
it++;
}
Этот код не работает, потому что когда вызывается pop_back()
, it
становится недействительным. Но я не вижу никаких документов, говорящих о признании недействительными итераторов в std::vector::pop_back()
.
У вас есть ссылки по этому поводу?