C++ Array Library - crend() Function


The C++ function std::array::crend() returns a constant reverse iterator which points to the past-end element of array. An iterator returned by this method can be used to iterate array contents but cannot be used to modify array contents, even if array object itself is not constant.


Following is the declaration for std::array::crend() function form std::array header.

const_reverse_iterator crend() const noexcept();



Return Value

Returns a reverse constant iterator pointing to the past-end element of the array. This is a place-holder location and doesn't store any actual data. So dereferencing this will cause undefined behavior.


This member function never throws exception.

Time complexity

Constant i.e. O(1)


Let us see how to use reverse iterator to print array contents reverse order.

#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {10, 20, 30, 40, 50};
   auto s = arr.crbegin();
   auto e = arr.crend();

   while (s < e) {
      cout << *s << " ";

   cout << endl;

   return 0;

Let us compile and run the above program, this will produce the following result −

50 40 30 20 10