English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ set crbegin() 사용법 및 예제

C++ STL Set(집합)

C ++ set crbegin()이 함수는 상수 반대 이터레이터를 반환하는 데 사용됩니다. 이 이터레이터는 set 컨테이너의 마지막 요소를 참조합니다.

set의 상수 반대 이터레이터는 반대 방향으로 이동하며, set 컨테이너의 시작(첫 번째 요소)에 도달하여 가리킵니다.상수요소.

문법

const_reverse_iterator crbegin() const noexcept;  	      //since C++ 11

매개변수

없음

반환 값

그는 상수 반대 이터레이터를 반환하며, 이 이터레이터는 집합의 마지막 요소를 가리킵니다.

매개변수

없음

반환 값

그는 상수 반대 이터레이터를 반환하며, 이 이터레이터는 다중 그래프의 마지막 요소를 가리킵니다.

複잡

불변합니다.

이터레이터 유효성

변경이 없습니다.

데이터 경쟁

컨테이너가 접근됩니다.

집합의 요소에 동시에 접근하는 것은 안전합니다.

취약성 안전

이 함수는 예외를 퍼뜨리지 않습니다.

예시1

crbegin() 함수의 간단한 예제를 보겠습니다:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> myset = {50,20,40,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

위의 예제에서 crbegin() 함수를 사용하여 상수 반대 이터레이터를 반환하여 이 이터레이터는 myset 집합의 마지막 요소를 가리킵니다.

set은 키의 정렬 순서에 따라 요소를 저장하기 때문에 set을 이터레이션하면 위의 순서, 즉 키의 정렬 순서에 따라 이루어집니다.

예시2

while 루프를 사용하여 집합을 반대 방향으로 탐색하는 간단한 예제를 보여드리겠습니다:

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// 문자열 집합과 정수 집합을 생성 및 초기화합니다
	set<string> setEx = {"bbb", "ccc", "aaa", "ddd"};
	//집합의 마지막을 가리키는 이터레이터를 생성합니다
	 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

위의 예제에서는 while 루프를 사용하여 집합을 반대 방향으로 const_iterate하고 crbegin() 함수를 사용하여 집합의 마지막 요소를 초기화했습니다.

set은 키의 정렬 순서에 따라 요소를 저장하기 때문에 set을 이터레이션하면 위의 순서, 즉 키의 정렬 순서에 따라 이루어집니다.

예시3

반대 방향 집합의 첫 번째 요소를 얻기 위한 간단한 예제를 보여드리겠습니다:

#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;
  }

출력:

반대 방향 집합 s1의 첫 번째 요소는: 40

위의 예제에서 crbegin() 함수는 집합 s의 반대 방향 집합을 반환합니다1의 첫 번째 요소를, 즉40.

예시4

빠른 예제를 보여주어 최고점수를 정렬하고 계산하는 방법을 설명하겠습니다:

#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 << "\n가장 높은 점수는: "<< *ite<<" \n";
  return 0;
  }

출력:

Marks | Roll Number
______________________
400
365
300
250
220
가장 높은 점수는: 400

위의 예제에서는 요소가 키로 저장된 집합 표시자를 구현했습니다. 함수 crbegin()는 집합의 자동 정렬 기능을 활용하여 가장 높은 점수를 인식할 수 있게 합니다.

C++ STL Set(집합)