Skip to content
Related Articles

Related Articles

vector::crend() & vector::crbegin() with example

Improve Article
Save Article
Like Article
  • Difficulty Level : Basic
  • Last Updated : 01 Feb, 2019

These functions return useful iterators to access vector elements in reverse order (from end to beginning)

Using vector::crend()

It’s a public member function that returns a const_reverse_iterator pointing to the element preceding the first element.
Return Value

A const_reverse_iterator to the reverse 
end of the sequence.

Syntax:

const_reverse_iterator crend() const noexcept;

Using vector::crbegin()

It returns a const_reverse_iterator pointing to the last element in the container (i.e., its reverse beginning)..
Return Value

A const_reverse_iterator to the reverse 
beginning of the sequence.

Syntax:

const_reverse_iterator crbegin() const noexcept;




// CPP program to illustrate working of crbegin() 
// crend()
#include <iostream>
#include <vector>
using namespace std;
  
int main ()
{
  // initializing vector with values
  vector<int> vect = {10, 20, 30, 40, 50};
  
  // for loop with crbegin and crend
  for (auto i = vect.crbegin(); i != vect.crend(); i++)
    cout << ' ' << *i;  //printing results
   
  cout << '\n';
  return 0;
}

Output:

50 40 30 20 10

Applications
crend :
Returns a reverse iterator to the element following the last element of the reversed container. It corresponds to the element preceding the first element of the non-reversed container. This element acts as a placeholder, attempting to access it results in undefined behavior
crbegin :
Returns a reverse iterator to the first element of the reversed container. It corresponds to the last element of the non-reversed container.
Both are used in deque operations, concurrently accessing or modifying different elements is safe.
The copy construction or assignment of the returned iterator is also guaranteed to never throw exception.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!