English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ map rbegin() 函数使用方法及示例

C++ STL map (conteneur)

C ++ map rbegin()函数用于返回指向map容器最后一个元素的反向迭代器

map的反向迭代器沿反向移动并递增,直到到达map容器的开头(第一个元素)。

语法

      reverse_iterator rbegin(); // 在 C++ 11 之前
const_reverse_iterator rbegin() const; // 在 C++ 11 之前
      reverse_iterator rbegin() noexcept; //从 C++ 11 开始
const_reverse_iterator rbegin() const noexcept;  //从 C++ 11 开始

参数

没有

返回值

它返回指向map的最后一个元素的反向迭代器。

Exemple1

让我们看一个简单的rbegin()函数示例。

#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char, int> mymap;
  
  mymap['x'] = 100;
  mymap['y'] = 200;
  mymap['z'] = 300;
  map<char, int>::reverse_iterator rit;
  for (rit = mymap.rbegin(); rit != mymap.rend(); ++rit)
    cout << rit->first << " = " << rit->second << '\n';
  return 0;
}

Sortie :

z = 300
y = 200
x = 100

在上面的示例中,rbegin()函数用于返回指向mymap容器中最后一个元素的反向迭代器。

Parce que le map stocke les éléments dans l'ordre de tri des clés, l'itération sur le map entraînera l'ordre suivant, c'est-à-dire l'ordre de tri des clés.

Exemple2

让我们看一个简单的示例,使用while循环以相反的顺序遍历map。

#include <iostream>
#include <map>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	map<string, int> mapEx = {
			{ "aaa", 10 },
			{ "ddd", 11 },
			{ "bbb", 12 },
			{ "ccc", 13 }
	};
 
	map<string, int>::reverse_iterator it = mapEx.rbegin();
 
	while (it != mapEx.rend()) {
		string word = it->first;
		int count = it->second;
		cout << word << "    ::    " << count << endl;
		it++;
	}
	return 0;
}

Sortie :

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

Dans l'exemple ci-dessus, nous utilisons une boucle while pour itérer dans le map dans l'ordre inverse, et la fonction rbegin() initialise l'élément dernier du map.

Parce que le map stocke les éléments dans l'ordre de tri des clés, l'itération sur le map entraînera l'ordre suivant, c'est-à-dire l'ordre de tri des clés.

Exemple3

Voyons un exemple simple pour obtenir le premier élément du map contourné.

#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 << "Conteneur map contourné m1le premier élément est: ";
    cout << "{" << ite->first << "",
         << ite->second << "}\n";
  return 0;
  }

Sortie :

Le conteneur map contourné m1le premier élément est: {3, 30}。

Dans l'exemple ci-dessus, la fonction rbegin() renvoie l'élément de conteneur m1du premier élément, c'est-à-dire {3,30}。

Exemple4

Voyons un exemple simple pour trier et calculer le score le plus élevé.

#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 << "Notes" << "    |    " << "Numéro de dossier" << '\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 << "\nLe score le plus élevé est: " << ite->first << " <<\n";
    cout << "Le volume de Topper est : " << ite->second << "\n";
  return 0;
  }

Sortie :

Notes | Numéro d'inscription
______________________
480 | 30
425   | 50
400 | 10
312   | 20
300 | 40
La note la plus élevée est : 480 
Le volume de Topper est : 30

Dans l'exemple ci-dessus, une marque de map a été réalisée, où le volume est stocké comme valeur et la marque est stockée comme clé. Cela nous permet d'utiliser la fonction de tri automatique de map et nous permet de reconnaître le volume du marque le plus élevé.

C++ STL map (conteneur)