I'm looking for info on what operations cause iterators to be invalidated - specifically, swap(). I have a couple std::list structures that I'm going to call swap (in response to my class's swap()) on, and I have no idea if this invalidates iterators. The draft of the C++ standard I have makes no mention of this, which I find... unsettling. I would assume that for vectors/maps/lists/sets/etc. that swapping two containers shouldn't cause iterator invalidation... but is this guaranteed? Is there a good reference for these questions?