English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map rbegin()La funzione serve per restituire un puntatore all'ultimo elemento del contenitore mapIteratore inverso。
del mapIteratore inversoSi muove in senso inverso e si incrementa fino a raggiungere l'inizio del contenitore del map (il primo elemento).
reverse_iterator rbegin(); // prima del C++ 11 const_reverse_iterator rbegin() const; // prima del C++ 11 reverse_iterator rbegin() noexcept; // da C++ 11 const_reverse_iterator rbegin() const noexcept; // da C++ 11
Nessuno
Restituisce un iteratore inverso che punta all'ultimo elemento del map.
Lasciamo che vediamo un esempio semplice di funzione rbegin().
#include <iostream> #include <map> using namespace std; int main () { map<char, int> mymap; mymap['x'] = 100; mymap['y'] = 200; mymap['z'] = 300; map<char, int>::reverse_iterator rit; for (rit=mymap.rbegin(); rit!=mymap.rend(); ++rit) cout << rit->first << " = " << rit->second << '\n'; return 0; }
Output:
z = 300 y = 200 x = 100
Nell'esempio sopra, la funzione rbegin() viene utilizzata per restituire un iteratore inverso che punta all'ultimo elemento del contenitore mymap.
Poiché il map memorizza gli elementi in ordine di sorting delle chiavi, l'iterazione sul map porta a questo ordine, ovvero l'ordine di sorting delle chiavi.
Lasciamo che vediamo un esempio semplice, utilizzare un ciclo while per esplorare il map in ordine inverso.
#include <iostream> #include <map> #include <string> #include <iterator> using namespace std; int main() { map<string, int> mapEx = { {"aaa", 10}, {"ddd", 11}, {"bbb", 12}, {"ccc", 13} }; map<string, int>::reverse_iterator it = mapEx.rbegin(); while (it != mapEx.rend()) { string word = it->first; int count = it->second; cout << word << " :: " << count << endl; it++; } return 0; }
Output:
ddd :: 11 ccc :: 13 bbb :: 12 aaa :: 10
Nel esempio sopra, usiamo un ciclo while per esplorare il map in ordine inverso e la funzione rbegin() inizializza l'ultimo elemento del map.
Poiché il map memorizza gli elementi in ordine di sorting delle chiavi, l'iterazione sul map porta a questo ordine, ovvero l'ordine di sorting delle chiavi.
Vediamo un esempio semplice per ottenere il primo elemento del map invertito.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int, int> m1 = { { 1, 10}, { 2, 20 }, { 3, 30 } }; auto ite = m1.rbegin(); cout << "Il primo elemento del contenitore map invertito m1 è: "; cout << "{ " << ite->first << ", " << ite->second << "}\n"; return 0; }
Output:
Il primo elemento del contenitore map invertito m1 è: {3, 30}
Nel esempio sopra, la funzione rbegin() restituisce il primo elemento del contenitore invertito m1, ovvero {3, 30}.
Vediamo un esempio semplice per ordinare e calcolare il punteggio più alto.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int, int> marks = { { 400, 10}, { 312, 20 }, { 480, 30 }, { 300, 40 }, { 425, 50 }}; cout << "Marks" << " | " << "Numero di matricola" << '\n'; cout << "______________________\n"; map<int, int>::reverse_iterator rit; for (rit = marks.rbegin(); rit != marks.rend(); ++rit) cout << rit->first << " | " << rit->second << '\n'; auto ite = marks.rbegin(); cout << "\nIl punteggio più alto è: " << ite->first << "\n"; cout << "Il numero del volume di Topper è: " << ite->second << "\n"; return 0; }
Output:
Punteggio | Numero di matricola ______________________ 480 | 30 425 | 50 400 | 10 312 | 20 300 | 40 La punteggio più alto è: 480 Il numero di volume di Topper è: 30
Nell'esempio sopra, è stato implementato un etichetta map, dove il numero di volume è stato memorizzato come valore e l'etichetta come chiave. Ciò ci permette di utilizzare la funzione di ordinamento automatico della map e ci permette di identificare il numero di volume dell'elemento con la più alta etichetta.