English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
const_reverse_iterator crbegin() const noexcept; // da C++ 11
Nessuno
Restituisce un iteratore costante che punta all'ultimo elemento dell'insieme.
Nessuno
Restituisce un iteratore costante che punta all'ultimo elemento del multigrafo.
Immutabile.
Nessuna modifica.
Il contenitore viene acceduto.
L'accesso contemporaneo agli elementi dell'insieme è sicuro.
Questa funzione non lancia mai eccezioni.
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进行迭代将导致上述顺序,即键的排序顺序。
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进行迭代将导致上述顺序,即键的排序顺序。
让我们看一个简单的示例,以获取反向集合的第一个元素:
#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。
让我们看一个简单的示例来对最高分进行排序和计算:
#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.