Graphisoft®

GSRootVersion: 1.0

RandomIterator Class

항목들의 시퀀스의 랜덤 열거를 위한 반복자(iterator)입니다.

template <class Type>
class RandomIterator : public BidirectionalIterator< Type >

Template 파라미터

Type
반복자(iterator)가 반복하는 항목들의 타입입니다.

멤버

Public 연산자

operator[] 지정한 항목에 대한 레퍼런스를 리턴합니다. (직접 접근)
operator++ 시퀀스의 다음 항목으로 전진 이동합니다.
operator-- 시퀀스의 이전 항목으로 후진 이동합니다.
operator+ 지정한 항목을 참조하는 새로운 반복자(iterator)를 리턴합니다.
operator- 지정한 항목을 참조하는 새로운 반복자(iterator)를 리턴하거나, 두 반복자 간의 차이를 리턴합니다.
operator+= 지정한 오프셋만큼 이동합니다.
operator-= 지정한 오프셋만큼 이동합니다.
operator< 반복자 비교입니다. (더 작은지 여부)
operator<= 반복자 비교입니다. (더 작거나 같은지 여부)
operator> 반복자 비교입니다. (더 큰지 여부)
operator>= 반복자 비교입니다. (더 크거나 같은지 여부)

설명

랜덤 접근 반복자(Random Access Iterator)는 (양방향 반복자처럼) 증가와 감소를 제공하고, 임의 크기의 간격만큼 앞뒤로 이동하는 상수 시간 메소드들도 제공합니다. 랜덤 접근 반복자는 기본적으로 모든 일반 C 포인터 산술연산을 제공합니다.

반복자는 컨테이너에 의해 생성되고 리턴되며 컨테이너의 요소를 통과하는 데 사용되거나 알고리즘 함수에 대한 인수로서 전달됩니다.

대부분의 알고리즘은 단일 반복자의 관점에서 표현되지 않지만 반복자의 범위 관점에서 [first, last) 표기는 first부터 last까지의 모든 반복자들을 참조합니다. (last는 포함하지 않음) 범위가 비어 있을 수 있습니다. , firstlast는 동일한 반복자일 수 있습니다. 또한 범위 안에 n 개의 반복자가 있는 경우 [first, last) 표기는 n+1 위치를 나타낸다는 것을 참고하십시오. 이것은 중요합니다: n 개에서 자주 작동하는 알고리즘은 n + 1 위치를 필요로 합니다. 예를 들어, 선형 검색 Find에서 검색이 성공하지 못했음을 나타내기 위해 몇 가지 값을 리턴할 수 있어야 합니다.

반복자는 컨테이너에서 알고리즘을 분리할 수 있게 해주는 메커니즘입니다: 알고리즘은 템플릿이며, 반복자 타입에 의해 파라미터화되므로 단일 타입의 컨테이너로 제한되지 않습니다.

예제

GS::Array<GS::String> array;    // 문자열들의 배열

GS::Array<GS::String>::Iterator it = array.Enumerate ();    // 반복자 획득하기 (또는 array.Begin ())


while (it != NULL) {                    // 시퀀스의 끝까지 (배열)

	GS::String s = *it;                 // 반복자 디레퍼런싱 (레퍼런스 리턴)

	USize length = it->GetLength ();    // 반복자 디레퍼런싱 (포인터 리턴)

	++it;                               // 다음 요소로 전진

}

GS::Sort (array.Begin (), array.End ());    // 알고리즘에서 반복자 사용하기

이 예제는 컨테이너(배열)로부터 획득한 반복자를 사용하는 방법을 보여줍니다.

요구사항

네임스페이스: GS

헤더: RandomIterator.hpp

참고사항

ConstRandomIterator