Inserting into std::map while iterating over it?
问题 I have a Map over which I iterate like this: std::map<unsigned int, GameObject *>::iterator itr = _gameObjects.begin(); while (itr != _gameObjects.end()) { itr->second->Update(); itr++; } Update() might insert an element into the map or even remove one from it, but it doesn't necessarily do any of the two. It obviously doesn't work like that. Is there a way it can be done? 回答1: From std::map::erase(): References and iterators to the erased elements are invalidated. Other references and