Map Rbegin Function

C++ map rbegin function is used to return a reverse iterator referring to the last element of the map container.

A reverse iterator of map moves in reverse direction and incrementing it until it reaches to the beginning (First element) of the map container.

Syntax

Example

reverse_iterator rbegin(); //until C++ 11
const_reverse_iterator rbegin() const; //until C++ 11
      reverse_iterator rbegin() noexcept; //since C++ 11
const_reverse_iterator rbegin() const noexcept;  //since C++ 11

Parameter

Return value

It returns a reverse iterator pointing to the last element of the map.

Example 1

Let's see a simple example for rbegin function.

Example

#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char,int> mymap;
  
  mymap['x'] = 100;
  mymap['y'] = 200;
  mymap['z'] = 300;

  // show content:
  map<char,int>::reverse_iterator rit;
  for (rit=mymap.rbegin(); rit!=mymap.rend(); ++rit)
    cout << rit->first << " = " << rit->second << '\n';

  return 0;
}

Output:

Output

z = 300
y = 200
x = 100

In the above example, rbegin function is used to return a reverse iterator pointing to the last element in the mymap map.

Because map store the elements in sorted order of keys therefore, iterating over a map will result in above order i.e. sorted order of keys.

Example 2

Let's see a simple example to iterate over the map in reverse order using while loop.

Example

#include <iostream>
#include <map>
#include <string>
#include <iterator>

using namespace std;
 
int main() {
 
	// Creating & Initializing a map of String & Ints
	map<string, int> mapEx = {
			{ "aaa", 10 },
			{ "ddd", 11 },
			{ "bbb", 12 },
			{ "ccc", 13 }
	};
 
	// Create a map iterator and point to the end of map
	map<string, int>::reverse_iterator it = mapEx.rbegin();
 
	// Iterate over the map using Iterator till beginning.
	while (it != mapEx.rend()) {
		// Accessing KEY from elemencpp tutorialed by it.
		string word = it->first;
 
		// Accessing VALUE from elemencpp tutorialed by it.
		int count = it->second;
 
		cout << word << " :: " << count << endl;
 
		// Increment the Iterator to point to next entry
		it++;
	}
	return 0;
}

Output:

Output

ddd :: 11
ccc :: 13
bbb :: 12
aaa :: 10

In the above example, we are using while loop to iterate over the map in reverse order and rbegin function initializes the last element of the map.

Because map store the elements in sorted order of keys therefore, iterating over a map will result in above order i.e. sorted order of keys.

Example 3

Let's see a simple example to get the first element of the reversed map.

Example

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main ()
{
  map<int,int> m1 = {
                { 1, 10},
                { 2, 20 },
                { 3, 30 } };
          
    auto ite = m1.rbegin();
 
    cout << "The first element of the reversed map m1 is: ";
    cout << "{" << ite->first << ", "
         << ite->second << "}\n";

  return 0;
  }

Output:

Output

The first element of the reversed map m1 is: {3, 30}

In the above example, rbegin function returns the first element of the reversed map m1 i.e. {3,30}.

Example 4

Let's see a simple example to sort and calculate the highest marks.

Example

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main ()
{
  map<int,int> marks = {
                { 400, 10},
                { 312, 20 },
                { 480, 30 },
                { 300, 40 },
                { 425, 50 }};

   cout << "Marks" << " | " << "Roll Number" << '\n';
   cout<<"______________________\n";
   
  map<int,int>::reverse_iterator rit;
  for (rit=marks.rbegin(); rit!=marks.rend(); ++rit)
    cout << rit->first << "   |  " << rit->second << '\n';

    auto ite = marks.rbegin();
 
    cout << "\nHighest Marks is: "<< ite->first <<" \n";
    cout << "Roll Number of Topper is: "<< ite->second << "\n";

  return 0;
  }

Output:

Output

Marks | Roll Number
______________________
480   | 30
425   | 50
400   | 10
312   | 20
300   | 40

Highest Marks is: 480 
Roll Number of Topper is: 30

In the above example, a map marks is implemented where the Roll Number is being stored as value and marks as key. This enables us to take advantage of the auto sorting in maps and lets us to identify the Roll number of the element with the highest marks.

Input Required

This code uses input(). Please provide values below: