3.1.5 Range 클래스
Range 클래스는 범위 또는 구간을 표현하는 클래스입니다. Range 클래스는 범위의 시작과 끝을 나타내는 start와 end 멤버 변수를 가지고 있습니다. 간략화한 Range 클래스 정의를 코드 3-5에 나타냈습니다.
코드 3-5 간략화한 Range 클래스 정의
01 class Range 02 { 03 public: 04 Range(); 05 Range(int _start, int _end); 06 07 int size() const; 08 bool empty() const; 09 static Range all(); 10 11 int start, end; 12 };
• 4행 기본 생성자. start = end = 0으로 초기화합니다.
• 5행 두 개의 정수를 인자로 받는 생성자. start = _start, end = _end로 초기화합니다.
• 7행 Range::size() 멤버 함수는 범위 크기(end - start)를 반환합니다.
• 8행 Range::empty() 멤버 함수는 start와 end가 같으면 true를 반환합니다.
• 9행 Range::all() 멤버 함수는 start = INT_MIN, end = INT_MAX로 설정한 Range 객체를 반환합니다.
• 11행 멤버 변수. start는 범위의 시작, end는 범위의 끝을 나타냅니다.
Range 클래스는 start부터 end까지의 정수 단위 범위를 표현합니다. 이때 start는 범위에 포함되고, end는 범위에 포함되지 않습니다. 예를 들어 다음 예제 코드에서 r1은 0부터 9까지의 범위를 표현하고, 10은 포함하지 않습니다.
Range r1(0, 10);