Вы попытались запустить функцию
vector<A*>::erase
с необычными параметрами. Какие — в ошибке не говорится, вот все перегрузки.
https://ru.cppreference.com/w/cpp/container/vector...
То есть функция принимает один или два итератора.
Например, если вы хотите удалить значение, но неизвестно, где, нельзя его просто erase. А надо…
// Спрессовать без перевыделения памяти, получить новый конец
std::vector<A*>::iterator newEnd = std::remove(v.begin(), v.end(), whatToDelete);
// Удалить освободившийся хвост скопом!
v.erase(newEnd, v.end());
Если вы хотите удалить по индексу…
v.erase(v.begin() + indexToDelete);