std::vector::rend, std::vector::crend — cppreference.com
Материал из cppreference.com
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody>
|
|
(до C++11) | |
|
|
(начиная с C++11) (до C++20) |
|
|
|
(начиная с C++20) | |
|
|
(до C++11) | |
|
|
(начиная с C++11) (до C++20) |
|
|
|
(начиная с C++20) | |
|
|
(начиная с C++11) (до C++20) |
|
|
|
(начиная с C++20) | |
Возвращает обратный итератор на элемент, следующий за последним элементом перевёрнутого vector. Он соответствует элементу, предшествующему первому элементу не перевёрнутого vector. Этот элемент существуют лишь условно, попытка доступа к нему приведёт к неопределенному поведению.
Параметры
(нет)
Возвращаемое значение
Обратный итератор на элемент, следующий за последним элементом.
Сложность
Константная.
Пример
#include <algorithm> #include <iostream> #include <numeric> #include <string> #include <vector> int main() { std::vector<int> nums {1, 2, 4, 8, 16}; std::vector<std::string> fruits {"апельсин", "яблоко", "малина"}; std::vector<char> empty; // Напечатаем vector. std::for_each(nums.rbegin(), nums.rend(), [](const int n) { std::cout << n << ' '; }); std::cout << '\n'; // Сумма всех чисел в vector nums (если такие есть), печатаем результат. std::cout << "Сумма чисел: " << std::accumulate(nums.rbegin(), nums.rend(), 0) << '\n'; // Печатаем первый фрукт в vector fruits, с проверкой если они есть. if (!fruits.empty()) std::cout << "Первый фрукт: " << *fruits.rbegin() << '\n'; if (empty.rbegin() == empty.rend()) std::cout << "vector 'empty' - действительно пуст.\n"; }
Вывод:
16 8 4 2 1 Сумма чисел: 31 Первый фрукт: малина vector 'empty' - действительно пуст.