English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ mappa crend()La funzione è utilizzata per convertireIteratore costanteConIn ordine inversoRitorna alla fine della mappa (ritorna un iteratore costante inverso che punta al elemento virtuale prima del primo elemento). Questo è simile all'elemento prima del primo elemento di un contenitore non inverso.
Attenzione: - Questo è un segnaposto. Questo posizione non contiene elementi, l'accesso è un comportamento non definito.
Attenzione: l'iteratore costante è un iteratore che puntava al contenuto costante.
const_reverse_iterator crend() const noexcept; //Da C++ 11 in poi
Nessuno
Restituisce const_reverse_iterator all'elemento successivo dell'ultimo elemento del contenitore inverso.
Ecco un esempio semplice della funzione crend().
#include <iostream> #include <map> using namespace std; int main () { map<char,int> mymap; mymap['x'] = 100; mymap['y'] = 200; mymap['z'] = 300; //Mostra il contenuto: map<char,int>::const_reverse_iterator rit; for (rit=mymap.crbegin(); rit!=mymap.crend(); ++rit) cout << rit->first << " = " << rit->second << '\n'; return 0; }
Output:
z = 300 y = 200 x = 100
Nell'esempio sopra, utilizzare la funzione crend() per restituire l'iteratore inverso costante all'elemento successivo dell'ultimo elemento del contenitore inverso.
Poiché la map memorizza gli elementi in ordine di ordinamento delle chiavi, l'iterazione sulla map porta a questa sequenza, ossia l'ordine di ordinamento delle chiavi.
Ecco un esempio semplice, utilizzare il ciclo while per esplorare la mappa in senso inverso.
#include <iostream> #include <map> #include <string> #include <iterator> using namespace std; int main() { //Creare e inizializzare la mappa String e Ints map<string, int> mapEx = { { "aaa", 10 }, { "ddd", 11 }, { "bbb", 12 }, { "ccc", 13 } }; //Creare un iteratore della mappa e puntare alla fine della mappa map<string, int>::const_reverse_iterator it = mapEx.crbegin(); //Utilizzare l'Iterator per iterare la mappa fino all'inizio. while (it != mapEx.crend()) { string word = it->first; int count = it->second; cout << word << " :: " << count << endl; it++; } return 0; }
Output:
ddd :: 11 ccc :: 13 bbb :: 12 aaa :: 10
Nell'esempio sopra, abbiamo utilizzato il ciclo while per iterare in senso inverso la mappa con const_iterate.
Poiché la map memorizza gli elementi in ordine di ordinamento delle chiavi, l'iterazione sulla map porta a questa sequenza, ossia l'ordine di ordinamento delle chiavi.
Vediamo un esempio semplice.
#include <iostream> #include <map> using namespace std; int main(void) { /* Costruttore di initializer_list */ map<char, int> m = { {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}, }; cout << "La map contiene i seguenti elementi in ordine inverso:" << endl; for (auto it = m.crbegin(); it != m.crend(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
Output:
La map contiene i seguenti elementi in ordine inverso: e = 5 d = 4 c = 3 b = 2 a = 1
Negli esempi precedenti, gli elementi della map vengono restituiti in ordine inverso.
Vediamo un esempio semplice, l'ordinamento e il calcolo del stipendio più alto.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,int> emp = { { 1000, 10}, { 2500, 20 }, { 4500, 30 }, { 3000, 40 }, { 5500, 50 }}; cout << "Stipendio | " << "ID" << '\n'; cout << "______________________\n"; map<int,int>::const_reverse_iterator rit; for (rit = emp.crbegin(); rit != emp.crend(); ++rit) cout << rit->first << " | " << rit->second << '\n'; auto ite = emp.crbegin(); cout << "\nStipendio più alto: " << ite->first << "\n"; cout << "ID è: " << ite->second << "\n"; return 0; }
Output:
Retribuzione | ID ______________________ 5500 | 50 4500 | 30 3000 | 40 2500 | 20 1000 | 10 Retribuzione più alta: 5500 ID è: 50
Nel esempio sopra, è stato implementato un contenitore map emp, in cui l'ID viene memorizzato come valore e la retribuzione viene memorizzata come chiave. Questo ci permette di utilizzare la funzione di ordinamento automatico del map e ci permette di determinare l'ID dell'elemento con la retribuzione più alta.