Скажите плз, есть код типа такого: multimap<int> foo; multimap<int>::iterator it; it = f.begin(); while (it != f.end()) { if (NeedToDelete(it)) foo.erase(it); ++it; // Вот это корректно? } Вопрос такой, после удаления, it можно инкрементировать? Дело в том, что смотрю кнугу по STL Плаугер, Степанов, Лии, там написано, что erase() возвращет итератор на элемент следующий за удаленным, однако в /usr/include/g++-3/multimap erase возвращает void. И вот я сижу и не могу понять кто прав и как быть? Может кто-то подскажет?