Здравствуйте, кубик, Вы писали:
К>it — итератор мультимапа. В процессе перебора элементов выясняется что текущее значение it указывает на элемент который надо освободить и убрать из мульмапа. К>я делаю:
К>delete it->second <- Тут освобождается объект типа А К>потом делаю it = my_multimap.erase(it);
К>Так можно ?
Если у тебя там сырой указатель, который последним указывает на конкретный экземпляр типа A (то есть, если вся мультимапа имеет какой-то такой тип: std::multi_map<key_type, A*>), то можно и нужно.
Другое дело, что откуда там вообще взялся delete и сырой указатель в 2020-м году?! Использование delete не должно выходить за пределы реализации библиотек по управлению памятью.
То есть почему у тебя изначально не std::multi_map<key_type, std::unique_ptr<A>>, например? Тогда и явный delete не нужен, и за удалением сам unique_ptr проследит и не забудет его сделать.