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

Stack (pilha)++ Tutorial Básico

Stack (pilha)++ Controle de fluxo

Stack (pilha)++ Função

Stack (pilha)++ Array & string

Stack (pilha)++ Estrutura de dados

Stack (pilha)++ Classe & objeto

Stack (pilha)++ Ponteiro

Stack (pilha)++ Herança

Stack (pilha)++ STL Tutorial

Stack (pilha)++ Manual de referência

Stack (pilha)++ Uso e exemplo do set crbegin()

Stack (pilha)++ C

Stack (pilha) ++ set crbegin()A função é usada para retornar um iterador reverso constante que faz referência ao último elemento do contêiner set.

O iterador reverso constante do conjunto move-se para trás e incrementa até alcançar o início do contêiner set (primeiro elemento) e apontar paraConstanteElemento.

Sintaxe

const_reverse_iterator crbegin() const noexcept;  	      //Desde C++ 11

Parâmetros

Nenhum

Retorno

Ele retorna um iterador reverso constante, que aponta para o último elemento do conjunto.

Parâmetros

Nenhum

Retorno

Ele retorna um iterador reverso constante, que aponta para o último elemento do multigrafo.

Complexo

Invariável.

Validade do iterador

Sem alterações.

Conflito de dados

O contêiner é acessado.

Acesso simultâneo aos elementos da coleção é seguro.

Segurança de exceções

Esta função nunca lança exceções.

Exemplo1

Vamos ver um exemplo simples da função crbegin():

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<int> myset = {50,20,40,10,30};
  cout << "myset em ordem inversa:";
  for (auto rit = myset.crbegin(); rit != myset.crend(); ++rit)
    cout << ' ' << *rit;
  cout << '\n';
  ite << "\n";
return 0;

}

myset em ordem inversa: 5Copyright © 4Copyright © 3Copyright © 2Copyright © 10

No exemplo acima, é usado o função crbegin() para retornar um iterador reverso constante, que aponta para o último elemento do conjunto myset.

Como o set armazena os elementos na ordem de chave, a iteração sobre o set resulta na ordem acima, ou seja, a ordem de chave.

Exemplo2

Vamos ver um exemplo simples de percorrer o conjunto em ordem inversa usando um loop while:

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// criar e inicializar um conjunto de strings & int
	set<string> setEx = {"bbb", "ccc", "aaa", "ddd"};
	//criar um iterador de conjunto e apontar para o final do conjunto
	 set<string>::const_reverse_iterator it = setEx.crbegin();
 
	// percorrer o conjunto até o início usando o iterador.
	while (it != setEx.crend()) {
		//acessar a chave do elemento ao qual ele aponta.
		string word = *it;
 
		cout << word << endl;
 
		// aumentar o iterador para apontar para o próximo item
		it++;
	return 0;
	ite << "\n";
return 0;

}

ddd
ccc
bbb
aaa

No exemplo acima, usamos um loop while para iterar sobre o conjunto em ordem inversa e inicializamos o último elemento do conjunto usando a função crbegin().

Como o set armazena os elementos na ordem de chave, a iteração sobre o set resulta na ordem acima, ou seja, a ordem de chave.

Exemplo3

Vamos ver um exemplo simples para obter o primeiro elemento do conjunto reverso:

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> s1 ={20,40,10,30};
          
    auto ite = s1.crbegin();
 
    cout << "o conjunto reverso s1o primeiro elemento é: ";
    rit) *ite;
  ite << "\n";
  return 0;

}

o conjunto reverso s1o primeiro elemento é: 4Copyright ©

No exemplo acima, a função crbegin() retorna o primeiro elemento do conjunto reverso s1o primeiro elemento, ou seja40.

Exemplo4

Vamos ver um exemplo simples para ordenar e calcular as notas mais altas:

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> marks = {400, 220, 300, 250, 365};
   cout << "Marks" << " | " << "Roll Number" << '\n';
   cout << "______________________\n";
   
  set<int>::const_reverse_iterator rit;
  for (rit = marks.crbegin(); rit != marks.crend(); ++rit)
    rit) *cout <<
    rit << '\n';
 
    auto ite = marks.crbegin(); *cout << "\nA maior pontuação é: " <<
  ite << "\n";
  return 0;

}

Saída:
MARCAS | NÚMERO DE MATRÍCULA
4A maior pontuação é:
365
3A maior pontuação é:
25Copyright ©
22Copyright ©
______________________ 4A maior pontuação é:

00

Stack (pilha)++ C