In the two forms of vector::erase:

iterator erase(iterator position);
iterator erase(iterator first, iterator last);

can the 'iterator' mentioned be a vector::const_iterator, vector::reverse_iterator, or vector::const_reverse_iterator as well as a vector::iterator ?