English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set setrend()函数用于以相反的顺序
语法 //const_reverse_iterator rend() const; ++ 11 reverse_iterator rend(); //const_reverse_iterator rend() const; ++ 11 直到 C //const_reverse_iterator rend() const noexcept;++ 11从 C reverse_iterator rend() noexcept; //const_reverse_iterator rend() const noexcept;++ 11从 C
没有
它将反向迭代器返回到反转容器最后一个元素之后的元素。
不变。
没有变化。
容器被访问。const版本和非const版本都不会修改容器。
同时访问集合的元素是安全的。
此函数永远不会引发异常。
让我们看一下rend()函数的简单示例:
#include <iostream> #include <set> using namespace std; int main () { set<int> myset = {40,50,20,10,30}; cout << "元素是 :"; for (auto rit = myset.rbegin(); rit != myset.rend(); ++rit) cout << ' ' << *rit; cout << '\n'; return 0; }
출력:
元素是 : 50 40 30 20 10
在上面的示例中,rend()函数用于将反向迭代器返回到反向容器的最后一个元素之后的元素。
위의 예제에서는 역순으로 집합을 순회하는 while 루프를 사용했습니다.
让我们看一个简单的示例,使用while循环以相反的顺序遍历集合:
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; 쉽게 볼 수 있는 예제를 보여드리겠습니다: // 创建和初始化一组字符串& int set<string> setEx = {"aaa", "bbb", "ccc", "ddd"}; // 创建一个set迭代器并指向set的末尾 set<string>::reverse_iterator it = setEx.rbegin(); // 使用迭代器遍历集合直到开始。 while (it != setEx.rend()) { // 从它所指向的元素访问键。 string word = *it; cout << word << endl; // 增加迭代器以指向下一个条目 it++_rIter } return 0; }
출력:
ddd ccc bbb bbb
aaa
위의 예제에서는 역순으로 집합을 순회하는 while 루프를 사용했습니다.
set은 키의 정렬 순서에 따라 요소를 저장하기 때문에 set을 순회하면 키의 정렬 순서대로 순회됩니다.
#include <set> #include <iostream> 쉽게 볼 수 있는 예제를 보여드리겠습니다: using namespace std; int main() {1_rIter set<int> s1set<int>::iterator s _Iter;1.rend( ); << "역집합이 됩니다: " <<1); 10 set<int>::reverse_iterator s << "역집합이 됩니다: " <<1); 2.insert( << "역집합이 됩니다: " <<1); 3.insert( << "역집합이 됩니다: " <<1_rIter();1_rIter = s << "역집합이 됩니다: " <<1cout << "." << endl;--_rIter 0 "); cout << "반집합의 마지막 요소는 " *<< "역집합이 됩니다: " <<1s // < // end를 사용하여 반복을 종료할 수 있습니다 집합을 순서대로 돌아다니는 방법 cout << "역집합이 됩니다: ";1cout << "set 집합은: ";1_Iter = s1.begin( ) ; s1_Iter != s1.end( ); s++ .rend( ); s cout << *<< "역집합이 됩니다: " <<1_Iter _rIter << " "; // _Iter << " "; // rend를 사용하여 반복을 종료할 수 있습니다 집합을 역순으로 돌아다니는 방법 cout << "역집합이 됩니다: ";1_rIter();1for ( s1.rbegin( ) ; s1_rIter != s1cout << "." << endl;++ .rend( ); s cout << *<< "역집합이 됩니다: " <<1); _rIter << " "; << "역집합이 됩니다: " <<1_rIter();1_rIter = s << "역집합이 됩니다: " <<1cout << "." << endl;--_rIter << "역집합이 됩니다: " <<1; *<< "역집합이 됩니다: " <<1.erase ( << "역집합이 됩니다: " <<1_rIter();1_rIter = s --<< "역집합이 됩니다: " <<1.rend( ); _rIter; cout << "삭제된 후, 마지막 요소는 " *<< "역집합이 됩니다: " <<1s }
출력:
10. set 집합은: 10 20 30 . 역집합은: 30 20 10 . 삭제된 후, 반집합의 마지막 요소는 20.
위의 예제에서 set의 요소는 역순으로 반환됩니다.
최고 점수를 정렬하고 계산하는 예제를 보여주겠습니다:
#include <iostream> #include <string> #include <set> using namespace std; int main () { set<int> emp = {1000,2500,4500,5000,3000}; cout << "급여" << '\n'; cout << "______________________\n"; set<int>::reverse_iterator rit; for (rit = emp.rbegin(); rit != emp.rend(); ++rit) cout << *rit << '\n'; auto ite = emp.rbegin(); cout << "\n최고 급여: "<< *ite << " \n"; return 0; }
출력:
급여 ______________________ 5000 4500 3000 2500 1000 최고 급여: 5000
위의 예제에서는 set emp를 구현했으며, ID를 값으로 저장하고 급여를 키로 저장했습니다. 이로 인해 우리는 집합의 자동 정렬 기능을 활용할 수 있으며, 가장 높은 급여를 가진 요소의 ID를 식별할 수 있습니다.