после конца для rbegin () и первого элемента для rend () - так должна работать итератор. Вот почему он называется обратным итератором. Он спроектирован таким образом, что вы можете использовать его в цикле for, не беспокоясь о том, чтобы ошибиться относительно начальной и конечной точек диапазона. Вы заметите, что для итератора можно использовать простой i ++, а итератор фактически выполняет итерацию в обратном направлении по диапазону.
Я думаю, все, что вам нужно знать, это то, как это должно работать. Там нет ничего плохого. Это просто делает вашу жизнь проще, поскольку вы с меньшей вероятностью допустите ошибку, когда пишете для (i = beginAtTheEnd to finishAtTheStart и декремент-i-in-the-way-as-i-++) , а не имея для (i = 10; i> 0; i -) , где вы можете ошибиться, вставив i <0 </strong> или i> 1 в состояние. Это упрощенный пример. Вы оцените это больше, если захотите выполнить обратную итерацию для контейнера.