I used std::map in STL. Can I use iterator after some other element inserted to the map? Is it still valid?
See Question&Answers more detail:osI used std::map in STL. Can I use iterator after some other element inserted to the map? Is it still valid?
See Question&Answers more detail:osWhen in doubt as to the semantics of an operation on a container, consult the documentation:
Map has the important property that inserting a new element into a
map
does not invalidate iterators that point to existing elements.Erasing an element from a
map
also does not invalidate any iterators, except, of course, for iterators that actually point to the element that is being erased.
This is taken from the SGI STL documentation. While this documentation technically does not specify the behavior of the C++ Standard Library containers, the differences are generally insignificant, aside from the parts of the STL that are not part of the C++ Standard Library, of course.
The SGI STL documentation is an indispensable reference, especially if you don't have a copy of the C++ Standard.