reverse_iterator rbegin(); //until C++ 11 const_reverse_iterator rbegin()const; //until C++ 11 reverse_iterator rbegin()noexcept; //since C++ 11 const_reverse_iterator rbegin()constnoexcept; //since C++ 11
参数
空
返回值
它返回一个反向迭代器(反向迭代器),它指向集合的最后一个元素。
复杂度
恒定。
迭代器有效性
没有变化。
数据竞争
非常量和常量版本都不会访问集合,不会修改集合容器。同时访问集合的元素是安全的。
异常安全
此函数从不抛出异常。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include<iostream> #include<set>
usingnamespace std;
intmain() { set<int> myset= {10,50,30,40,20}; // show content: cout<<"Elements are:"<<endl; set<int>::reverse_iterator rit; for (rit=myset.rbegin(); rit!=myset.rend(); ++rit) cout << *rit<< '\n';
usingnamespace std; intmain(){ // Creating & Initializing a set of String set<string> setEx = {"aaa", "ccc", "ddd", "bbb"}; // Create a set iterator and point to the end of set set<string, int>::reverse_iterator it = setEx.rbegin(); // Iterate over the set using Iterator till beginning. while (it != setEx.rend()) { // Accessing KEY from element pointed by it. string word = *it; cout << word << endl; // Increment the Iterator to point to next entry it++; } return0; }
#include<set> #include<iostream> intmain( ) { usingnamespace 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 << "The first element in the reversed set is " << *s1_rIter << "." << endl; // begin can be used to start an iteration // throught a set in a forward order cout << "The set is:"; for ( s1_Iter = s1.begin( ) ; s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << endl; // rbegin can be used to start an iteration // throught a set in a reverse order cout << "The reversed set is:"; for ( s1_rIter = s1.rbegin( ) ; s1_rIter != s1.rend( ); s1_rIter++ ) cout << " " << *s1_rIter; cout << endl; // A set element can be erased by dereferencing to its key s1_rIter = s1.rbegin( ); s1.erase ( *s1_rIter ); s1_rIter = s1.rbegin( ); cout << "After the erasure, the first element " << "in the reversed set is "<< *s1_rIter << "." << endl; return0; }
输出:
1 2 3 4
The first element in the reversed set is 30. The set is:102030 The reversed set is:302010 After the erasure, the first element in the reversed set is 20.