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

C++ Introduction au tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & chaîne

C++ Structure des données

C++ Classe & objet

C++ Pointeur

C++ Héritage

C++ Tutoriel STL

C++ Manuel de référence

C++ Méthode et exemple d'utilisation de set rbegin()

C++ Set (ensemble) STL

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).

Syntaxe

      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

Paramètres

Aucune

Valeur de retour

Elle retourne un itérateur inverse (reverse iterator) qui pointe sur le dernier élément du ensemble.

Complexité

Inchangé.

Validité des itérateurs

Aucun changement.

Concurrence des données

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é.

Sécurité des exceptions

Cette fonction ne déclenche jamais d'exception.

实例1

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进行迭代将导致上述顺序,即键的排序顺序。

实例2

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进行迭代将导致上述顺序,即键的排序顺序。

实例3

让我们看一个简单的示例,以获取反向集合的第一个元素:

#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.

实例4

让我们看一个简单的示例来对最高分进行排序和计算:

#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.

C++ Set (ensemble) STL