いくつかの要素を逆順に繰り返す必要があり、次を使用しています。
for ( /* ... */ it = vec.end() - 1, end = vec.begin() ; it >= end ; --it ) {
// ...
ベクトルを含む一部のコンテナーに対して定義されましたend() - 1
が、begin decrement も定義されているかどうかを知る必要があります。
編集
これらのイテレータをパラメーターとして std::vector::erase に渡す必要があるため、reverse_iterator を使用できるかどうかわかりません。ドキュメントから、それらは異なる型のようです。