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

C++ Introduction aux bases

C++ Contrôle du flux

C++ Fonctions

C++ Tableaux & chaînes

C++ Structures de données

C++ Classes & objets

C++ Pointeurs

C++ Héritage

C++ STL Tutoriel

C++ Manuel de référence

C++ Utilisation et exemple de set crbegin()

C++ Set (ensemble) STL

C ++ set crbegin()La fonction est utilisée pour renvoyer un itérateur réversif constant qui fait référence à l'élément le plus récent du conteneur set.

L'itérateur réversif constant de set se déplace en sens inverse et augmente jusqu'à atteindre le début du conteneur set (premier élément) et pointe surConstanteÉlément.

Syntaxe

const_reverse_iterator crbegin() const noexcept;  	      //since C++ 11

Paramètres

Aucun

Valeur de retour

Elle renvoie un itérateur réversif constant qui pointe sur l'élément le plus récent de l'ensemble.

Paramètres

Aucun

Valeur de retour

Elle renvoie un itérateur réversif constant qui pointe sur l'élément le plus récent du multiset.

Complexité

Inchangé.

Validité de l'itérateur

Aucun changement.

Concurrence des données

Le conteneur est visité.

L'accès simultané aux éléments de l'ensemble est sécurisé.

Sécurité des exceptions

Cette fonction ne lance jamais d'exception.

Exemple1

Voyons un exemple simple de la fonction crbegin():

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<int> myset = {50,20,40,10,30};
  cout << "myset est ordonné dans l'ordre inverse:";
  for (auto rit = myset.crbegin(); rit != myset.crend(); ++rit)
    cout << ' ' << *rit;
  cout << '\n';
  return 0;
}

Sortie :

myset est ordonné dans l'ordre inverse: 50 40 30 20 10

Dans l'exemple précédent, la fonction crbegin() renvoie un itérateur réversif constant qui pointe sur l'élément le plus récent de l'ensemble myset.

Comme le set stocke les éléments dans l'ordre de tri des clés, l'itération sur le set entraîne l'ordre suivant, c'est-à-dire l'ordre de tri des clés.

Exemple2

Laissez-nous voir un exemple simple pour itérer sur un ensemble en ordre inverse en utilisant une boucle while :

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// créer et initialiser un ensemble de chaînes & d'entiers
	set<string> setEx = {"bbb", "ccc", "aaa", "ddd"};
	//créer un itérateur set et pointer à la fin du set
	 set<string>::const_reverse_iterator it = setEx.crbegin();
 
	// itérer sur l'ensemble jusqu'au début en utilisant l'itérateur
	while (it != setEx.crend()) {
		//accéder à la clé pointée par l'itérateur.
		string word = *it;
 
		cout << word << endl;
 
		// augmenter l'itérateur pour pointer au prochain élément
		it++;
	}
	return 0;
}

Sortie :

ddd
ccc
bbb
aaa

Dans l'exemple précédent, nous utilisons une boucle while pour itérer sur l'ensemble dans l'ordre inverse et utilisons la fonction crbegin() pour initialiser l'élément final de l'ensemble.

Comme le set stocke les éléments dans l'ordre de tri des clés, l'itération sur le set entraîne l'ordre suivant, c'est-à-dire l'ordre de tri des clés.

Exemple3

Laissez-nous voir un exemple simple pour obtenir le premier élément d'un ensemble inversé :

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> s1 = {20,40,10,30};
          
    auto ite = s1.crbegin();
 
    cout << "l'ensemble s1le premier élément est: ";
    cout << *ite;
  return 0;
  }

Sortie :

l'ensemble s1le premier élément est: 40

Dans l'exemple précédent, la fonction crbegin() renvoie le premier élément du ensemble s1le premier élément, c'est-à-dire40.

Exemple4

Laissez-nous voir un exemple simple pour trier et calculer les meilleures notes :

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> marks = {400, 220, 300, 250, 365};
   cout << "Marks" << " | " << "Roll Number" << '\n';
   cout << "______________________\n";
   
  set<int>::const_reverse_iterator rit;
  for (rit = marks.crbegin(); rit != marks.crend(); ++rit)
    cout << *rit<<'\n';
    auto ite = marks.crbegin();
 
    cout << "\nLa plus haute note est: "<< *ite<<" \n";
  return 0;
  }

Sortie :

Notes | Numéro d'inscription
______________________
400
365
300
250
220
La plus haute note est: 400

Dans l'exemple ci-dessus, une étiquette de collection a été mise en œuvre, où les éléments de la collection sont stockés en tant que clé. La fonction crbegin() nous permet d'utiliser les fonctionnalités de tri automatique de la collection et de reconnaître la plus haute note.

C++ Set (ensemble) STL