Iterator Invalidation Rules

You're iterating over a std::map and need to erase certain elements during iteration. Which approach is correct in C++11 and later?