Graphisoft®

GSRootVersion: 1.0

ConstForwardIterator Class

상수 항목들의 시퀀스의 순방향 열거를 위한 반복자(iterator)입니다.

template <class Type>
class ConstForwardIterator : public IteratorBase< Type >

Template 파라미터

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

멤버

Public 연산자

operator * 반복자(iterator)가 현재 참조하는 항목에 대한 상수 레퍼런스를 리턴합니다.
operator-> 반복자(iterator)가 현재 참조하는 항목에 대한 상수 포인터를 리턴합니다.
operator++ 시퀀스의 다음 항목으로 전진 이동합니다.
operator== 반복자 비교입니다. (같은지 여부)
operator!= 반복자 비교입니다. (같지 않은지 여부)

설명

상수 순방향 반복자(Constant Forward Iterator)는 값들의 선형 시퀀스의 통상적인 직관적 개념에 해당하는 반복자입니다. 다중 패스 알고리즘에서 상수 순방향 반복자를 사용할 수 있습니다. 그러나 상수 순방향 반복자는 시퀀스를 통해 뒤로 물러나는 것을 허용하지 않으며 이름에서 알 수 있듯이 전진만 허용합니다. 상수 순방향 반복자는 디레퍼런스될 때 상수 객체를 리턴합니다.

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

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

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

예제

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

const GS::Array<GS::String>& constArray = array;  // 문자열들의 상수 배열

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


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

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

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

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

}

GS::Find (constArray.Begin (), constArray.End (), GS::String ("Test"));    // 알고리즘에서 상수 반복자 사용하기

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

요구사항

네임스페이스: GS

헤더: ForwardIterator.hpp

참고사항

ForwardIterator | ConstBidirectionalIterator< Type >