Да, erase вызывает деструктор для объекта (ов) в векторе.
Когда объект вставляется в вектор, вызывается его конструктор копирования, и его копия помещается в вектор, поэтому, если у вас есть указатель, указывающий на f
(а копия * 1004 отсутствует* создан для вектора), вам не нужно беспокоиться о последствиях удаления объектов из вектора.