English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Uso e exemplo da função rbegin() do map

C++ Map (Container) do STL

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).

Sintaxe

      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

Parâmetro

Nenhum

Retorno

Ela retorna um iterador reverso apontando para o último elemento do map.

Exemplo1

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.

Exemplo2

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.

Exemplo3

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}。

Exemplo4

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.

C++ Map (Container) do STL