Why should the end user not be allowed to 'erase' in a vector using a reverse_iterator, or a first and last reverse_iterator also ? After all the vector iterators just allow one to specify a position in the vector so why can't 'erase' be specified in terms of reverse iterators too ?