English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ set rbegin()Function to return a reference to the last element of the set containerReverse iterator.
Of the setReverse iteratorMoves in the opposite direction and increments until it reaches the beginning of the set container (the first element).
reverse_iterator rbegin(); // Until C++ 11 const_reverse_iterator rbegin() const; // Until C++ 11 reverse_iterator rbegin() noexcept; // Starting from C++ 11 const_reverse_iterator rbegin() const noexcept; // Starting from C++ 11
Nessuno
Restituisce un iteratore inverso (reverse iterator) che punta all'ultimo elemento della collezione.
Immutabile.
Nessuna variazione.
È possibile accedere alla versione non const o alla versione const di una collezione container che non può modificare la collezione. L'accesso agli elementi della collezione è sicuro.
Questa funzione non solleva mai eccezioni.
Ecco un esempio semplice della funzione rbegin():
#include <iostream> #include <set> using namespace std; int main () { set<int> myset = {10, 50, 30, 40, 20}; // Mostrare il contenuto: cout << "Gli elementi sono: " << endl; set<int>::reverse_iterator rit; for (rit = myset.rbegin(); rit != myset.rend(); ++rit) cout << *rit << '\n'; return 0; }
Output:
Gli elementi sono: 50 40 30 20 10
Nell'esempio sopra, la funzione rbegin() è utilizzata per restituire un iteratore inverso che punta all'ultimo elemento della collezione myset.
Poiché set memorizza gli elementi in ordine di chiave, l'iterazione del set porta all'ordine di sorting delle chiavi menzionato sopra.
Facciamo un esempio semplice per esplorare la collezione in senso inverso utilizzando un ciclo while:
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; int main() { // Creare e inizializzare una collezione stringa set<string> setEx = {"aaa", "ccc", "ddd", "bbb"}; // Creare un iteratore set e puntare alla fine del set set<string, int>::reverse_iterator it = setEx.rbegin(); // Eseguire la scansione della collezione utilizzando l'iteratore fino all'inizio while (it != setEx.rend()) { // Accedere alla KEY (chiave) dell'elemento puntato string word = *it; cout << word << endl; // Aumentare l'iteratore per puntare al successivo elemento it++; } return 0; }
Output:
ddd ccc bbb aaa
Nell'esempio sopra, abbiamo iterato la collezione in senso inverso utilizzando un ciclo while e abbiamo inizializzato l'ultimo elemento della collezione utilizzando la funzione rbegin().
Poiché set memorizza gli elementi in ordine di chiave, l'iterazione del set porta all'ordine di sorting delle chiavi menzionato sopra.
Facciamo un esempio semplice per ottenere l'elemento iniziale della collezione inversa:
#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 << "Il primo elemento dell'insieme complementare è " << *s1_rIter << "." << endl; // begin può essere utilizzato per iniziare l'iterazione // Passa attraverso un insieme nell'ordine cout << "La raccolta è:"; for (s1_Iter = s1.begin(); s1_Iter != s1.end(); s1_Iter++) cout << " " << *s1_Iter; cout << endl; // rbegin può essere utilizzato per iniziare l'iterazione // Passa attraverso un insieme nell'ordine inverso cout << "La raccolta inversa è:"; for (s1_rIter = s1.rbegin(); s1_rIter != s1.rend(); s1_rIter++) cout << " " << *s1_rIter; cout << endl; // Puoi eliminare l'elemento dell'insieme rimuovendo il riferimento alla chiave dell'elemento s1_rIter = s1.rbegin(); s1.erase(*s1_rIter); s1_rIter = s1.rbegin(); cout << "Dopo la rimozione, il primo elemento " << "Nella raccolta inversa è " << *s1_rIter << "." << endl; return 0; }
Output:
Il primo elemento dell'insieme complementare è 30. La raccolta è: 10 20 30 La raccolta inversa è: 30 20 10 Dopo la rimozione, il primo elemento nella raccolta inversa è 20.
Ecco un esempio semplice per ordinare e calcolare il punteggio più alto:
#include <iostream> #include <string> #include <set> using namespace std; int main () { set<int> marks = {400, 350, 465, 290, 410}; cout << "Punteggio" << '\n'; cout << "______________________\n"; set<int>::reverse_iterator rit; for (rit = marks.rbegin(); rit != marks.rend(); ++rit) cout << *rit << '\n'; auto ite = marks.rbegin(); cout << "\nIl punteggio più alto è: " << *ite << " \n"; return 0; }
Output:
Punteggio ______________________ 465 410 400 350 290 Il punteggio più alto è: 465
In questi esempi, è stato implementato un set con il segno come chiave. Questo ci permette di sfruttare i vantaggi della classificazione automatica e identificare il punteggio più alto.