[cs13001] Question after class
Mikhail Nesterenko
mikhail at cs.kent.edu
Mon Mar 10 23:16:09 EDT 2014
CSI students,
Ignore this discussion. It was mant for a different mailing list.
Thanks,
--
Mikhail
Mikhail Nesterenko wrote:
>
>
> > There was a question after class about modifying a container in a
> > loop without breaking things with the iterator. I had mentioned my
> > solution in Java and you wanted to look up what the standard was for
> > C++.
>
>
> In general, modifying a container invalidates iterators. However,
> operations that invalidate iterators often return "convenient"
> iterators. For example, erase() returns the iterator to the next
> element (in the updated container) after the one erased. Hence the
> idiom:
>
> for(vector<int>::iterator it=myVector.begin();
> it != myVector.end();
> /* no increment here */)
> if(must_erase)
> it = myVector.erase(it);
> else
> ++it;
More information about the cs13001
mailing list