English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map rbegin()A função é usada para retornar um iterador que aponta para o último elemento do contêiner do mapIterador reverso.
do mapIterador reversoMove-se para trás e incrementa até alcançar o início do contêiner do map (o primeiro elemento).
reverse_iterator rbegin(); // de C++ 11 Antes const_reverse_iterator rbegin() const; // de C++ 11 Antes reverse_iterator rbegin() noexcept; //de C++ 11 Começa const_reverse_iterator rbegin() const noexcept; //de C++ 11 Começa
Nenhum
Ela retorna um iterador reverso apontando para o último elemento do map.
Vamos ver um exemplo simples da função 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; }
Saída:
z = 300 y = 200 x = 100
No exemplo acima, a função rbegin() é usada para retornar um iterador reverso apontando para o último elemento do contêiner mymap.
Como o map armazena os elementos na ordem de classificação das chaves, a iteração sobre o map resulta na ordem acima, ou seja, a ordem de classificação das chaves.
Vamos ver um exemplo simples, usando um loop while para percorrer o map em ordem inversa.
#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; }
Saída:
ddd :: 11 ccc :: 13 bbb :: 12 aaa :: 10
No exemplo acima, usamos um loop while para percorrer o map ao contrário e a função rbegin() inicializa o último elemento do map.
Como o map armazena os elementos na ordem de classificação das chaves, a iteração sobre o map resulta na ordem acima, ou seja, a ordem de classificação das chaves.
Vamos ver um exemplo simples para obter o primeiro elemento do map invertido.
#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 << "O contêiner de map m1O primeiro elemento é: "; cout << "{" << ite->primeiro << "\t" << ite->second << "}\n"; return 0; }
Saída:
O contêiner de map invertido m1O primeiro elemento é: {3, 30}。
No exemplo acima, a função rbegin() retorna o primeiro elemento invertido do contêiner m1o primeiro elemento, ou seja, {3,30}。
Vamos ver um exemplo simples, ordenar e calcular a maior pontuação.
#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 << "Notas" << " | " << "Número de Matrícula" << '\n'; cout << "______________________\n"; map<int, int>::reverse_iterator rit; for (rit = marks.rbegin(); rit != marks.rend(); ++rit) cout << rit->primeiro << "\t|\t" << rit->second << "\n"; auto ite = marks.rbegin(); cout << "\nA maior pontuação é: " << ite->primeiro << " <<\n"; cout << "O número do volume do Topper é: " << ite-second << "\n"; return 0; }
Saída:
Notas | Número do Registro ______________________ 480 | 30 425 | 50 400 | 10 312 | 20 300 | 40 A maior pontuação é: 480 O número do volume do Topper é: 30
No exemplo acima, foi implementado o marcador map, onde o número do volume é armazenado como valor e o marcador é armazenado como chave. Isso nos permite aproveitar a função de classificação automática do map e nos permite identificar o número do volume do elemento com o marcador mais alto.