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

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & chaîne

C++ Structure de 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 rend()

C++ Set (ensemble) STL

C ++ set rendLa fonction est utilisée pourOrdre inverseRetourner l'itérateur à la fin du conteneur (pas l'élément dernier, mais l'élément précédent). Cela est similaire à l'élément avant le premier élément dans un conteneur non inversé.

Note :-Ceci est unplaceholder. Il n'y a pas d'élément à cette position, l'accès est un comportement non défini.

Syntaxe

      reverse_iterator rend();                             //à ++ 11
const_reverse_iterator rend() const;                 //à ++ 11
      reverse_iterator rend() noexcept;               //C++ 11Du
const_reverse_iterator rend() const noexcept;   //C++ 11Du

Paramètres

Aucune

Valeur de retour

Elle retourne l'itérateur en sens inverse au-delà de l'élément dernier du conteneur inversé.

Complexité

Inchangé.

Validité de l'itérateur

Pas de changement.

Concurrence des données

Le conteneur est consulté. Les versions const et non const ne modifient pas le conteneur.

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

Sécurité des exceptions

Cette fonction ne déclenche jamais d'exception.

Exemple1

Voyons un exemple simple de la fonction rend() :

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

Sortie :

L'élément est : 50 40 30 20 10

Dans cet exemple, la fonction rend() est utilisée pour retourner l'élément suivant de l'élément dernier du conteneur réversé.

Parce que set stocke les éléments dans un ordre de tri de clé, itérer sur set entraînera l'ordre ci-dessus, c'est-à-dire l'ordre de tri des clés.

Exemple2

Voyons un exemple simple, en utilisant une boucle while pour parcourir la collection dans l'ordre inverse :

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// Créer et initialiser un ensemble de chaînes & int
	set<string> setEx = {"aaa", "bbb", "ccc", "ddd"};
 
	// Créer un itérateur set et pointer à la fin du set
	set<string>::reverse_iterator it = setEx.rbegin();
 
	// Parcourir la collection avec un itérateur jusqu'au début.
	while (it != setEx.rend()) {
		// Accéder à la clé pointée par cet élément.
		string word = *it;
 
		cout << word << endl;
 
		// Ajouter un itérateur pour pointer au prochain élément
		it++;
	}
	return 0;
}

Sortie :

ddd
ccc
bbb
aaa

Dans l'exemple ci-dessus, nous utilisons une boucle while pour itérer à travers la collection dans un ordre inverse.

Parce que set stocke les éléments dans un ordre de tri de clé, itérer sur set entraînera l'ordre ci-dessus, c'est-à-dire l'ordre de tri des clés.

Exemple3

Laissez-nous voir un exemple simple :

#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.rend();  
   s1_rIter--;  
   cout << "Le dernier élément de l'ensemble complémentaire est "  
        << *s1_rIter << "." << endl;  
  
   // end peut être utilisé pour terminer l'itération   
   // itérer à travers une collection dans un ordre croissant  
   cout << "L'ensemble est : ";  
   for (s1_Iter = s1.begin(); s1_Iter != s1.end(); s1_Iter++ )  
      cout << *s1_Iter << " ";  
   cout << "." << endl;  
  
   // rend peut être utilisé pour terminer l'itération   
   // itérer à travers une collection dans un ordre inverse
   cout << "L'ensemble inversé est : ";  
   for (s1_rIter = s1.rbegin(); s1_rIter != s1.rend(); s1_rIter++ )  
      cout << *s1_rIter << " ";  
   cout << "." << endl;  
  
   s1_rIter = s1.rend();  
   s1_rIter--;  
   s1.erase ( *s1_rIter);  
  
   s1_rIter = s1.rend();  
   --s1_rIter;  
   cout << "Après suppression, le dernier élément est "  
        << "L'ensemble inversé est : " << *s1_rIter << "." << endl;  
}

Sortie :

Le dernier élément de l'ensemble complémentaire est 10.
L'ensemble est : 10 20 30.
L'ensemble inversé est : 30 20 10 .
Après suppression, le dernier élément de l'ensemble complémentaire est 20.

Dans l'exemple ci-dessus, les éléments de la collection sont retournés dans un ordre inverse.

Exemple4

Laissez-nous voir un exemple simple pour classer et calculer le score le plus élevé :

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> emp = {1000,2500,4500,5000,3000};
   cout << "\nSalaire";
   cout << "______________________\n";
   
  set<int>::reverse_iterator rit;
    for (rit = emp.rbegin(); rit != emp.rend(); ++rit)
    cout << *rit << '\n';
    auto ite = emp.rbegin();
 
    cout << "\nSalaire le plus élevé: "<< *ite << " \n";
  return 0;
  }

Sortie :

Salaire
______________________
5000
4500
3000
2500
1000
Salaire le plus élevé: 5000

Dans l'exemple ci-dessus, une set emp est implémentée, où l'ID est stocké comme valeur et le salaire comme clé. Cela nous permet d'utiliser la fonction de tri automatique de l'ensemble et de nous permet de reconnaître l'ID de l'élément le plus payé.

C++ Set (ensemble) STL