std::vector::erase()
does not accept reverse iterator.
Is there any way to call this method with a reverse iterator?
My sample code is:
std::vector<int> MyVector;
for (int i=0; i<10; i++)
{
MyVector.push_back(i);
}
// Now suppose that I want to erase the last three elements
int nEraseCount = 0;
for (std::vector<int>::const_reverse_iterator it=MyVector.rbegin();
it<MyVector.rend(); ++it)
{
MyVector.erase(it);
if (++nEraseCount == 3) break;
}
However, this sample code is not working, because it
is a reverse iterator and erase()
does not take reverse iterator as its argument.
How do I modify this code so that it works?