Then again, vectors are most frequently added to at the end of the container, so there's normally nothing to invalidate.) Deletion from a vector invalidates that iterator and all iterators past it. For vectors, insertion may invalidate _all_ iterators into the vector if the insertion requires a reallocation.(Hadn't thought about it, but it would invalidate all iterators at the point of insertion and beyond in all cases.
Supported properties are index, count, first, last, odd, even and etc..Given all this, an implementation really doesn't have much freedom.