English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set rbegin()A função é usada para retornar a referência ao último elemento do contêiner set.Iterador reverso.
do setIterador reversoMove-se na direção oposta e incrementa até alcançar o início do contêiner set (o primeiro elemento).
reverse_iterator rbegin(); //Até C ++ 11 const_reverse_iterator rbegin() const; //Até C ++ 11 reverse_iterator rbegin() noexcept; //De C++ 11Começa const_reverse_iterator rbegin() const noexcept; //De C++ 11Começa
Nenhum
Ele retorna um iterador reverso (reverse iterator) que aponta para o último elemento da coleção.
Invariável.
Sem alterações.
Pode acessar a versão não const ou a versão const não pode modificar o contêiner da coleção. Acesso aos elementos da coleção é seguro.
Esta função nunca lança exceções.
Vamos ver um exemplo simples da função rbegin():
#include <iostream> #include <set> using namespace std; int main () { set<int> myset = {10,50,30,40,20}; // Mostrar conteúdo: cout << "Os elementos são: " << endl; set<int>::reverse_iterator rit; for (rit = myset.rbegin(); rit != myset.rend(); ++rit) cout << *rit << '\n'; return 0; }
Saída:
Os elementos são: 50 40 30 20 10
No exemplo acima, a função rbegin() é usada para retornar o iterador reverso que aponta para o último elemento do conjunto myset.
Porque o set armazena os elementos na ordem de classificação das chaves, iterar sobre o set resultará na ordem mencionada acima, ou seja, a ordem de classificação das chaves.
Vamos ver um exemplo simples, usando o loop while para percorrer a coleção em ordem inversa:
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; int main() { // Cria e inicializa o set de strings set<string> setEx = {"aaa", "ccc", "ddd", "bbb"}; // Cria um iterador de set e o aponta para o final do set set<string, int>::reverse_iterator it = setEx.rbegin(); // Percore a coleção usando o iterador até o início. while (it != setEx.rend()) { // Acesse KEY (chave) do elemento ao qual o iterador aponta. string word = *it; cout << word << endl; // Aumenta o iterador para apontar para o próximo item it++; } return 0; }
Saída:
ddd ccc bbb aaa
No exemplo acima, usamos o loop while para iterar a coleção em ordem inversa e inicializamos o último elemento da coleção usando a função rbegin().
Porque o set armazena os elementos na ordem de classificação das chaves, iterar sobre o set resultará na ordem mencionada acima, ou seja, a ordem de classificação das chaves.
Vamos ver um exemplo simples para obter o primeiro elemento da coleção 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 << "O primeiro elemento do complemento é " << *s1_rIter << "." << endl; // begin pode ser usado para começar a iteração // Iterar sobre uma coleção em ordem cout << "A coleção set é:"; for (s1_Iter = s1.begin(); s1_Iter != s1.end(); s1_Iter++ ) cout << " "; *s1_Iter; cout << endl; // rbegin pode ser usado para começar a iteração // Iterar sobre uma coleção em ordem inversa cout << "A coleção set inversa é:"; for (s1_rIter = s1.rbegin(); s1_rIter != s1.rend(); s1_rIter++ ) cout << " "; *s1_rIter; cout << endl; // Pode-se excluir o elemento removendo a referência ao elemento da chave do set s1_rIter = s1.rbegin(); s1.erase ( *s1_rIter); s1_rIter = s1.rbegin(); cout << "Após a exclusão, o primeiro elemento " << "No iterador reverso é " << *s1_rIter << "." << endl; return 0; }
Saída:
O primeiro elemento do complemento é 30. A coleção set é: 10 20 30 A coleção set inversa é: 30 20 10 Após a exclusão, o primeiro elemento no iterador reverso é 20.
Vamos ver um exemplo simples para ordenar e calcular a maior nota:
#include <iostream> #include <string> #include <set> using namespace std; int main () { set<int> marks = {400, 350, 465, 290, 410}; cout << "Nota" << '\n'; cout << "______________________\n"; set<int>::reverse_iterator rit; for (rit = marks.rbegin(); rit != marks.rend(); ++rit) cout << *rit << '\n'; auto ite = marks.rbegin(); cout << "\nA maior pontuação é: " << *ite << " \n"; return 0; }
Saída:
Pontuação ______________________ 465 410 400 350 290 A maior pontuação é: 465
No exemplo acima, foi implementado um conjunto com o marcador como chave. Isso nos permite aproveitar as vantagens da classificação automática e identificar a maior pontuação.