std::deque<T,Allocator>::rbegin, std::deque<T,Allocator>::crbegin
From cppreference.com
reverse_iterator rbegin(); | (1) | (noexcept since C++11) (constexpr since C++26) |
const_reverse_iterator rbegin()const; | (2) | (noexcept since C++11) (constexpr since C++26) |
const_reverse_iterator crbegin()constnoexcept; | (3) | (since C++11) (constexpr since C++26) |
Returns a reverse iterator to the first element of the reversed *this. It corresponds to the last element of the non-reversed *this.
If *this is empty, the returned iterator is equal to rend().
Contents |
[edit]Return value
Reverse iterator to the first element.
[edit]Complexity
Constant.
[edit]Notes
The underlying iterator of the returned reverse iterator is the end iterator. Hence the returned iterator is invalidated if and when the end iterator is invalidated.
libc++ backports crbegin()
to C++98 mode.
[edit]Example
Run this code
#include <algorithm>#include <iostream>#include <numeric>#include <string>#include <deque> int main(){std::deque<int> nums{1, 2, 4, 8, 16};std::deque<std::string> fruits{"orange", "apple", "raspberry"};std::deque<char> empty; // Print deque.std::for_each(nums.rbegin(), nums.rend(), [](constint n){std::cout<< n <<' ';});std::cout<<'\n'; // Sums all integers in the deque nums (if any), printing only the result.std::cout<<"Sum of nums: "<<std::accumulate(nums.rbegin(), nums.rend(), 0)<<'\n'; // Prints the first fruit in the deque fruits, checking if there is any.if(!fruits.empty())std::cout<<"First fruit: "<<*fruits.rbegin()<<'\n'; if(empty.rbegin()== empty.rend())std::cout<<"deque 'empty' is indeed empty.\n";}
Output:
16 8 4 2 1 Sum of nums: 31 First fruit: raspberry deque 'empty' is indeed empty.
[edit]See also
(C++11) | returns a reverse iterator to the end (public member function) |
(C++14) | returns a reverse iterator to the beginning of a container or array (function template) |