Home »
C++ STL
Iterate a list in reverse order (Example of list::rbegin() and list::rend() functions) | C++ STL
In this article, we are going to learn how to iterate a list in reverse order in C++ STL? Here, we will also learn about the list::rbegin() and list::rend() functions – which are predefined functions of list header in C++ STL.
Submitted by IncludeHelp, on August 24, 2018
Problem statement
Given a list and we have to iterate it’s all elements in reverse order and print in new line in C ++ STL.
Iterating a list in reverse order
To iterate a list in reverse order in C++ STL, we need an reverse_iterator that should be initialized with the last element of the list, as a reverse order and we need to check it till the end of the list.
List reverse iterator declaration
list<int>::reverse_iterator revit;
list::rbegin() and list::rend() Functions
The function list::rbegin() returns a reverse iterator pointing to the first element from the end or we can say as the reverse beginning.
Syntax
list_name.rbegin();
The function list::rend() returns a reverse iterator pointing to the last element from the end or we can say as the reverse ending.
Syntax
list_name.rend();
Here is an example with sample input and output:
Input:
list num{10, 20, 30, 40, 50}
Output:
List elements are:
50
40
30
20
10
C++ program to iterate a list in reverse order
#include <iostream>
#include <list>
using namespace std;
int main() {
// declare a list
list<int> num{10, 20, 30, 40, 50};
// declare an iterator
list<int>::reverse_iterator revit;
// run loop using begin () end () functons
cout << "List elements are: " << endl;
for (revit = num.rbegin(); revit != num.rend(); revit++)
cout << *revit << endl;
return 0;
}
Output
List elements are:
50
40
30
20
10