English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set rbegin()La fonction retourne une référence à l'élément le plus récent du conteneur set.Itérateur inverse.
du setItérateur inverseDéplacez-vous dans la direction opposée et augmentez jusqu'à atteindre le début du conteneur set (le premier élément).
reverse_iterator rbegin(); //Jusqu'à C ++ 11 const_reverse_iterator rbegin() const; //Jusqu'à C ++ 11 reverse_iterator rbegin() noexcept; //De C++ 11Début const_reverse_iterator rbegin() const noexcept; //De C++ 11Début
Aucune
Elle retourne un itérateur inverse (reverse iterator) qui pointe sur le dernier élément du ensemble.
Inchangé.
Aucun changement.
Il est possible d'accéder à une version non const ou à une version const qui ne peut pas modifier le conteneur de ensemble. L'accès aux éléments du ensemble est sécurisé.
Cette fonction ne déclenche jamais d'exception.
Voyons un exemple simple de la fonction rbegin() :
#include <iostream> #include <set> using namespace std; int main () { set<int> myset = {10,50,30,40,20}; // Affichage du contenu : cout << "Les éléments sont: " << endl; set<int>::reverse_iterator rit; for (rit = myset.rbegin(); rit != myset.rend(); ++rit) cout << *rit << '\n'; return 0; }
Sortie :
Les éléments sont : 50 40 30 20 10
Dans l'exemple précédent, la fonction rbegin() est utilisée pour retourner un itérateur inverse pointant sur le dernier élément du ensemble myset.
因为set因此按键的排序顺序存储元素,所以对set进行迭代将导致上述顺序,即键的排序顺序。
Voici un exemple simple pour voir comment parcourir un ensemble en utilisant une boucle while dans l'ordre inverse :
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; int main() { // Créer et initialiser un set de chaînes set<string> setEx = {"aaa", "ccc", "ddd", "bbb"}; // Créer un itérateur set et pointer à la fin du set set<string, int>::reverse_iterator it = setEx.rbegin(); // Parcourir le ensemble avec l'itérateur jusqu'au début. while (it != setEx.rend()) { // Accéder à KEY (clé) de l'élément pointé par l'itérateur. string word = *it; cout << word << endl; // Ajouter un itérateur pour pointer vers l'élément suivant it++; } return 0; }
Sortie :
ddd ccc bbb aaa
Dans l'exemple précédent, nous utilisons une boucle while pour itérer sur le ensemble dans l'ordre inverse et initialisons le dernier élément du ensemble en utilisant la fonction rbegin().
因为set因此按键的排序顺序存储元素,所以对set进行迭代将导致上述顺序,即键的排序顺序。
让我们看一个简单的示例,以获取反向集合的第一个元素:
#include <set> #include <iostream> int main( ) { using namespace std; set<int> s1; set<int>::iterator s1_Iter; set<int>::reverse_iterator s1_rIter; s1.insert( 10 ); s1.insert( 20 "); s1.insert( 30 "); s1_rIter = s1.rbegin( ); cout << "反集的第一个元素是 " << *s1_rIter << "." << endl; // begin可用于开始迭代 // 按顺序通过一个集合 cout << "set集合是:"; for (s1_Iter = s1.begin( ) ; s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << endl; // rbegin可用于开始迭代 // 以相反的顺序通过一个集合 cout << "反向set集合是:"; for (s1_rIter = s1.rbegin( ) ; s1_rIter != s1.rend( ); s1_rIter++ ) cout << " " << *s1_rIter; cout << endl; // 可以通过解除对set元素的键的引用来删除该元素 s1_rIter = s1.rbegin( ); s1.erase ( *s1_rIter); s1_rIter = s1.rbegin( ); cout << "删除之后,第一个元素 " << "在反向集中是 "<< *s1_rIter << "." << endl; return 0; }
Sortie :
反集的第一个元素是 30. set集合是: 10 20 30 反向set集合是: 30 20 10 删除之后,第一个元素 在反向集中是 20.
让我们看一个简单的示例来对最高分进行排序和计算:
#include <iostream> #include <string> #include <set> using namespace std; int main () { set<int> marks = {400, 350, 465, 290, 410}; cout << "分数" << '\n'; cout << "______________________\n"; set<int>::reverse_iterator rit; for (rit = marks.rbegin(); rit != marks.rend(); ++rit) cout << *rit << '\n'; auto ite = marks.rbegin(); cout << "\nLe score le plus élevé est: "<< *ite << " \n"; return 0; }
Sortie :
Score ______________________ 465 410 400 350 290 Le score le plus élevé est: 465
Dans les exemples ci-dessus, une collection marquée est implémentée en utilisant la clé comme marque. Cela nous permet de tirer parti des avantages de la classification automatique et d'identifier les scores les plus élevés.