Метод rend
Метод rend возвращает обратный итератор, который указывает на элемент, предшествующий первому элементу вектора. Этот итератор используется в качестве конечной точки при переборе элементов вектора в обратном порядке. Сама коллекция при этом не изменяется. Метод не принимает параметров.
Обратите внимание: хотя rend указывает на позицию перед первым элементом, разыменовывать этот итератор нельзя. Он используется только для сравнения в циклах.
Синтаксис
vector.rend()
Пример
Давайте выведем все элементы вектора в обратном порядке, используя метод rend в качестве конечной точки:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.rbegin(); it != vec.rend(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
5 4 3 2 1
Пример
Давайте найдем сумму всех элементов вектора, перебирая их в обратном порядке:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int sum = 0;
for (auto it = vec.rbegin(); it != vec.rend(); ++it)
{
sum += *it;
}
cout << "Sum: " << sum << endl;
return 0;
}
Результат выполнения кода:
"Sum: 15"