English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set rbegin()함수는 셋 컨테이너의 마지막 요소를 가리키는 참조를 반환하는 데 사용됩니다.반대 이터너리.
셋의반대 이터너리셋 컨테이너의 첫 번째 요소(처음 요소)까지 반대 방향으로 이동하고 증가합니다.
reverse_iterator rbegin(); //까지 ++ 11 const_reverse_iterator rbegin() const; //까지 ++ 11 reverse_iterator rbegin() noexcept; //C++ 11시작 const_reverse_iterator rbegin() const noexcept; //C++ 11시작
없음
반대 방향의 이터너리를 반환하며, 이 이터너리는 셋의 마지막 요소를 가리킵니다.
불변합니다.
변화가 없습니다.
const 버전이나 non-const 버전 모두 셋 컨테이너의 셋을 접근할 수 있으며, 셋의 요소에 접근하는 것은 안전합니다.
이 함수는 예외를 발생시키지 않습니다.
rbegin() 함수의 간단한 예제를 보겠습니다:
#include <iostream> #include <set> using namespace std; int main() { set<int> myset = {10,50,30,40,20}; // 내용: cout << "요소는: " << endl; set<int>::reverse_iterator rit; for (rit = myset.rbegin(); rit != myset.rend(); ++rit) cout << *rit<< '\n'; return 0; }
출력:
요소는: 50 40 30 20 10
위의 예제에서 rbegin() 함수는 myset 셋의 마지막 요소를 가리키는 반대 이터너리를 반환합니다.
set은 키의 정렬 순서에 따라 요소를 저장하므로 set을 순회하면 키의 정렬 순서에 따라서 순회됩니다.
while 루프를 사용하여 셋을 반대 순서로 순회하는 간단한 예제를 보겠습니다:
#include <iostream> #include <set> #include <string> #include <iterator> using namespace std; int main() { // 셋을 생성하고 초기화했습니다. set<string> setEx = {"aaa", "ccc", "ddd", "bbb"}; // 셋의 마지막에 가리키는 셋 이터너리를 생성했습니다. set<string, int>::reverse_iterator it = setEx.rbegin(); // 이터너리를 사용하여 셋을 순회하며 시작까지 이동합니다. while (it != setEx.rend()) { // 그가 가리키는 요소에서 KEY(키)를 접근합니다. string word = *it; cout << word << endl; // 다음 항목을 가리키는 이터너리를 증가시켰습니다. it++; } return 0; }
출력:
ddd ccc bbb aaa
위의 예제에서는 while 루프를 사용하여 반대 순서로 셋을 이터네이션하고 rbegin() 함수를 사용하여 셋의 마지막 요소를 초기화했습니다.
set은 키의 정렬 순서에 따라 요소를 저장하므로 set을 순회하면 키의 정렬 순서에 따라서 순회됩니다.
반대 방향 집합의 첫 번째 요소를 가져오기 위해 간단한 예제를 보겠습니다:
#include <set> #include <iostream> int main( ) { using namespace 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 << "반대 집합의 첫 번째 요소는 " << *s1_rIter << "." << endl; // begin을 사용하여 순회를 시작할 수 있습니다 // 집합을 순회하면 cout << "set 집합은:"; for( s1_Iter = s1.begin(); s1_Iter != s1.end(); s1_Iter++ ) cout << " " << *s1_Iter; cout << endl; // rbegin을 사용하여 순회를 시작할 수 있습니다 // 집합을 역순으로 순회하면 cout << "반대 방향 set 집합은:"; for( s1_rIter = s1.rbegin(); s1_rIter != s1.rend(); s1_rIter++ ) cout << " " << *s1_rIter; cout << endl; // set 요소의 키에 대한 참조를 해제하여 요소를 제거할 수 있습니다 s1_rIter = s1.rbegin(); s1.erase( *s1_rIter); s1_rIter = s1.rbegin(); cout << "삭제 후, 첫 번째 요소는 " << "반대 방향 집합에서는 "<< *s1_rIter << "." << endl; return 0; }
출력:
반대 집합의 첫 번째 요소는 30. set 집합은: 10 20 30 반대 방향 set 집합은: 30 20 10 삭제 후, 첫 번째 요소는 반대 방향 집합에서는 20.
최고 점수를 정렬하고 계산하는 방법을 보여주기 위해 간단한 예제를 보겠습니다:
#include <iostream> #include <string> #include <set> using namespace std; int main() { set<int> marks = {400, 350, 465, 290, 410}; cout << "점수" << '\n'; cout<<"______________________\n"; set<int>::reverse_iterator rit; for(rit=marks.rbegin(); rit!=marks.rend(); ++rit) cout << *rit<< '\n'; auto ite = marks.rbegin(); cout << "\n최고 점수는: "<< *ite <<" \n"; return 0; }
출력:
점수 ______________________ 465 410 400 350 290 최고 점수는: 465
위의 예제에서는 키로 표시된 세트를 구현했습니다. 이는 자동 분류의 장점을 활용하고 최고 점수를 인식할 수 있게 합니다.