English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set crend()函数用于以相反的顺序将常量迭代器返回到集合的末尾(最后一个元素之后的元素)。这类似于非反转容器的第一个元素之前的元素。
const_reverse_iterator crend() const noexcept; //从 C++ 11开始
没有
它将const_reverse_iterator返回到反转容器的最后一个元素之后的元素。
不变。
没有变化。
容器被访问。
同时访问集合的元素是安全的。
此函数永远不会引发异常。
让我们看一下crend()函数的简单示例:
#include <iostream> #include <set> using namespace std; int main () { set<int> myset = {40,20,50,10,30}; cout << "myset以相反的顺序:"; for (auto rit = myset.crbegin(); rit != myset.crend(); ++rit) cout << ' ' << *rit; cout << '\n'; return 0; }
출력:
myset은 반대 순서로: 50 40 30 20 10
위의 예제에서는 crend() 함수를 사용하여 상수 반대 이터레이터를 반대 컨테이너의 마지막 요소 다음의 요소로 반환합니다.
set은 키의 정렬 순서에 따라 요소를 저장하므로 set을迭代하면 키의 정렬 순서대로의 순서가 됩니다.
반대 순서로 집합을 탐색하는 간단한 예제를 보겠습니다:
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; int main() { // 집합과 문자열& int을 생성 및 초기화합니다. set<string> setEx = {"ccc", "ddd", "aaa", "bbb"}; //집합의 마지막 요소를 가리키는 이터레이터를 생성합니다 set<string>::const_reverse_iterator it = setEx.crbegin(); // 이터레이터를 사용하여 집합을 시작까지 탐색합니다. while (it != setEx.crend()) { // 그것이 가리키는 요소에서 키에 접근합니다. string word = *it; cout << word << endl; // 다음 항목을 가리키는 증가형 이터레이터 it++; } return 0; }
출력:
ddd ccc bbb aaa
위의 예제에서는 반대 순서로集合을 const_iterate하는 while루프를 사용했습니다.
set은 키의 정렬 순서에 따라 요소를 저장하므로 set을迭代하면 키의 정렬 순서대로의 순서가 됩니다.
간단한 예제를 보겠습니다:
#include <iostream> #include <set> #include <algorithm> using namespace std; int main() { set<int> c = {3, 1, 2}); for_each(c.crbegin(), c.crend(), [](const int& x) { cout << x << endl; }); }
출력:
3 2 1
위의 예제에서 set의 요소는 반대 순서로 반환됩니다.
높은 점수를 정렬하고 계산하기 위한 간단한 예제를 보겠습니다:
#include <iostream> #include <string> #include <set> using namespace std; int main () { set<int> emp = {1000,2500,4500,1200,3000}; cout << "봉급" << '\n'; cout<<"______________________\n"; set<int>::const_reverse_iterator rit; for(rit=emp.crbegin(); rit!=emp.crend(); ++rit) cout << *rit << '\n'; auto ite = emp.crbegin(); cout << "\n최고 급여: " << *ite << " \n"; return 0; }
출력:
급여 ______________________ 4500 3000 2500 1200 1000 최고 급여: 4500
위의 예제에서는 salEmp 이름의 set 집합을 구현했습니다. 이는 급여를 키로 저장하여 자동 정렬 기능을 활용하고 최고 급여를 결정할 수 있게 합니다.