English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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的最后一个元素的反向迭代器。
让我们看一个简单的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.
让我们看一个简单的示例,使用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.
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}。
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é.