std::vector::erase()
不接受反向迭代器。
有没有办法用反向迭代器调用这个方法?
我的示例代码是:
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;
}
但是,此示例代码不起作用,因为it
它是一个反向迭代器,erase()
并且没有将反向迭代器作为其参数。
如何修改此代码以使其正常工作?