English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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é.
reverse_iterator rend(); //à ++ 11 const_reverse_iterator rend() const; //à ++ 11 reverse_iterator rend() noexcept; //C++ 11Du const_reverse_iterator rend() const noexcept; //C++ 11Du
Aucune
Elle retourne l'itérateur en sens inverse au-delà de l'élément dernier du conteneur inversé.
Inchangé.
Pas de changement.
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é.
Cette fonction ne déclenche jamais d'exception.
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.
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.
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.
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é.