Что означают надписи Ty, Alloc, Allocator в ошибке?

Пытаюсь удалить объект класса из векторы, и высвечивается подсказка. В ней есть такая запись. Что она означает?
отсутствуют экземпляры перегруженная функция "std::vector<_Ty, _Alloc>::erase [с _Ty=A *, _Alloc=std::allocator]"
Объясните что за _Ty_Alloc, c_Ty, _Alloc, allocator.
  • Вопрос задан
  • 489 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Вы попытались запустить функцию 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);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы