Вы можете конвертировать из reverse_iterators в итераторы, используя base (), хотя вам нужно вычесть один, чтобы получить тот, который указывает на тот же элемент, таким образом, rbegin () указывает на end () и rend () указывает на begin () (потому что на самом деле невозможно указать на это до начала).
У вас больше проблем, потому что вы используете const_reverse_iterator, который не может быть преобразован в неконстантный, а для удаления требуются неконстантные итераторы. Логика в том, что вы модифицируете коллекцию, поэтому используете неконстантный итератор.
В вашем случае у вас возникла большая проблема с циклом, поскольку вы удаляете итераторы, тем самым делая их недействительными, а затем пытаетесь вернуться к предыдущему элементу.
Если вам нужно удалить последние 3 элемента, вам следует использовать метод стирания, который принимает диапазон, а не удалять их по одному.
Это можно сделать с помощью MyVector.erase(MyVector.rbegin() + 3).base(), MyVector.end() )
в данном конкретном случае, если вы знаете, что MyVector.size() >= 3