Namespaces
Variants
Actions

std::vector<T,Allocator>::rend, std::vector<T,Allocator>::crend

From cppreference.com
< cpp‎ | container‎ | vector
 
 
 
 
reverse_iterator rend();
(1)(noexcept since C++11)
(constexpr since C++20)
const_reverse_iterator rend()const;
(2)(noexcept since C++11)
(constexpr since C++20)
const_reverse_iterator crend()constnoexcept;
(3)(since C++11)
(constexpr since C++20)

Returns a reverse iterator past the last element of the reversed *this. It corresponds to the element preceding the first element of the non-reversed *this.

This returned iterator only acts as a sentinel. It is not guaranteed to be dereferenceable.

range-rbegin-rend.svg

Contents

[edit]Return value

Reverse iterator to the element following the last element.

[edit]Complexity

Constant.

Notes

libc++ backports crend() to C++98 mode.

[edit]Example

#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{"orange", "apple", "raspberry"};std::vector<char> empty;   // Print vector.std::for_each(nums.rbegin(), nums.rend(), [](constint n){std::cout<< n <<' ';});std::cout<<'\n';   // Sums all integers in the vector 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 vector fruits, checking if there is any.if(!fruits.empty())std::cout<<"First fruit: "<<*fruits.rbegin()<<'\n';   if(empty.rbegin()== empty.rend())std::cout<<"vector 'empty' is indeed empty.\n";}

Output:

16 8 4 2 1 Sum of nums: 31 First fruit: raspberry vector 'empty' is indeed empty.

[edit]See also

returns a reverse iterator to the beginning
(public member function)[edit]
(C++14)
returns a reverse end iterator for a container or array
(function template)[edit]
close