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

Tutorial di Base di C++

Controllo di flusso C++

Funzioni in C++

Array e stringa C++

Struttura dei dati C++

Classe e oggetto C++

Puntatori in C++

Ereditarietà in C++

Tutorial di STL in C++

Manuale di riferimento C++

Come utilizzare e fare esempi di crbegin() in C++ set

Set (Set) in STL C++

C++ set crbegin()La funzione viene utilizzata per restituire un iteratore costante reverse iterator che fa riferimento all'ultimo elemento del contenitore set.

L'iteratore costante reverse iterator della set si muove in senso inverso e aumenta fino a raggiungere l'inizio del contenitore set (primo elemento) e punta aCostanteElemento.

Sintassi

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

Parametro

Nessuno

Valore di ritorno

Restituisce un iteratore costante che punta all'ultimo elemento dell'insieme.

Parametro

Nessuno

Valore di ritorno

Restituisce un iteratore costante che punta all'ultimo elemento del multigrafo.

Complesso

Immutabile.

Validità degli iteratori

Nessuna modifica.

Conflitto dei dati

Il contenitore viene acceduto.

L'accesso contemporaneo agli elementi dell'insieme è sicuro.

Sicurezza delle eccezioni

Questa funzione non lancia mai eccezioni.

Esempio 1

Lasciamo che vediamo un esempio semplice della funzione crbegin():

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

Output:

myset in ordine inverso: 50 40 30 20 10

Nel esempio precedente, la funzione crbegin() restituisce un iteratore costante che punta all'ultimo elemento dell'insieme myset.

因为set按键的排序顺序存储元素,所以对set进行迭代将导致上述顺序,即键的排序顺序。

Esempio 2

Lasciamo che vediamo un esempio semplice, che utilizza un ciclo while per esplorare l'insieme in ordine inverso:

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// 创建和初始化一组字符串 & int
	set<string> setEx = {"bbb", "ccc", "aaa", "ddd"};
	// 创建一个set迭代器并指向set的末尾
	 set<string>::const_reverse_iterator it = setEx.crbegin();
 
	// 使用迭代器遍历集合直到开始。
	while (it != setEx.crend()) {
		// 从它所指向的元素访问键。
		string word = *it;
 
		cout << word << endl;
 
		// 增加迭代器以指向下一个条目
		it++;
	}
	return 0;
}

Output:

ddd
ccc
bbb
aaa

在上面的示例中,我们使用while循环以相反的顺序对集合进行const_iterate,并使用crbegin()函数初始化集合的最后一个元素。

因为set按键的排序顺序存储元素,所以对set进行迭代将导致上述顺序,即键的排序顺序。

实例3

让我们看一个简单的示例,以获取反向集合的第一个元素:

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> s1 = {20, 40, 10, 30};
          
    auto ite = s1.crbegin();
 
    cout << "反向集s1的第一个元素是: ";
    cout << *ite;
  return 0;
  }

Output:

反向集s1的第一个元素是: 40

在上面的示例中,crbegin()函数返回反向集s1的第一个元素,即40。

实例4

让我们看一个简单的示例来对最高分进行排序和计算:

#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)
    cout << *rit << '\n';
    auto ite = marks.crbegin();
 
    cout << "\nIl punteggio più alto è: " << *ite << " \n";
  return 0;
  }

Output:

Valori | Numero di Matricola
______________________
400
365
300
250
220
Il punteggio più alto è: 400

In esempio sopra, è stato implementato un set di etichette, dove gli elementi del set sono memorizzati come chiavi. La funzione crbegin() ci permette di utilizzare la funzione di ordinamento automatico del set e identificare il punteggio più alto.

Set (Set) in STL C++