The meaning of the inscriptions, Ty, Alloc, Allocator in error?

Trying to remove the class object from vectors, and is displayed in a tip. It has such a record. What does it mean?
there are no instances of overloaded function "std::vector<_Ty, _Alloc>::erase [with _Ty=A *, _Alloc=std::allocator]"
Explain that because of _Ty_Alloc, c_Ty, _Alloc, allocator.
April 19th 20 at 12:34
2 answers
April 19th 20 at 12:36
April 19th 20 at 12:38
You tried to run the function vector<A*>::erase with unusual parameters. In the error does not say that all overload.
https://ru.cppreference.com/w/cpp/container/vector...
That is, the function takes one or two iterators.

For example, if you want to delete the value, but not where, you can't simply erase. And it is necessary...
// Compress without the allocation of memory to new end
std::vector<A*>::iterator newEnd = std::remove(V. begin(), V. end(), whatToDelete);
// Remove the empty tail in a crowd!
v.erase(newEnd, V. end());


If you want to remove by index...
v.erase(v.begin() + indexToDelete);
Can you please detail about this:
// Compress without the allocation of memory to new end
std::vector::iterator newEnd = std::remove(V. begin(), V. end()... - Mercedes_Gottlieb commented on April 19th 20 at 12:41
@Mercedes_Gottlieb, This is a standard algorithm that works like this: if array was ( 1 2 3 4 1 2 3 4 ) and we remove 2, it converts the array into a ( 1 3 4 1 3 4 ? ? ) and returns an iterator to the first hole. Thus, we can physically remove the holes range [ newEnd, V. end() ). - Cordia.Ledner44 commented on April 19th 20 at 12:44

Find more questions by tags C++