When 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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…