Share via


반복기

STL 시설 다양 한 알고리즘과 작동할 때 시퀀스 사이 중재 반복기의 광범위 한 사용을 확인 합니다.반복기 형식 (또는 접두사)의 이름을 해당 유형에 필요한 반복기의 범주를 나타냅니다.전력 증가의 순서로 범주가 요약 되어 여기서:

  • 출력.출력 반복기 X 값만 사용할 수 있습니다 V 그 뒤이 간접 저장 해야 합니다 수 증가 다음 저장소 앞에서 (*X+ + = V), (*X = V, + +X), 또는 (*X = V, X+ +).

  • 입력 합니다.입력된 하는 반복기 X 는 시퀀스의 끝을 나타내는 단일 값을 나타낼 수 있습니다.입력된 하는 반복기를 시퀀스의 끝 값을 비교 하는 경우에 값을 가질 수 V 에서 간접 액세스는 여러 번에로 (V = *X).다음 값 또는 시퀀스의 끝에 진행 하 여이에서 같이 증가 + +X, X+ +, 또는 (V = *X+ +).모든 복사본을 입력된 하는 반복기를 증가 되 면 다른 복사본을 안전 하 게, 역참조 된, 또는 증가 이후부터 비교할 수 있습니다.

  • 앞 으로입니다.정방향 반복기 X 입력된 반복기에 대 한 읽기 또는 쓰기에 대 한 출력 반복기를 사용할 수 있습니다.그러나 읽을 수는 있습니다 (통해 V = *X) 방금 작성 한 (통해 *X = V)는 정방향 반복기를 통해.각 역참조 하 수 독립적으로 증가 정방향 반복기의 여러 복사본을 만들 수도 있습니다.

  • 양방향입니다.양방향 반복기 X 위치 정방향 반복기를 사용할 수 있습니다.그러나 사용자 또한 양방향 반복기로-줄어드는 수 있습니다,X, X-한 나 (V = *X-).

  • 임의 액세스 합니다.임의 액세스 반복기는 X 위치 하는 양방향 반복기를 사용할 수 있습니다.개체 포인터를 수 하는 임의 액세스 반복기를 훨씬 같은 정수 산술을 수행할 수도 있습니다.For N, an integer object, you can write xN,x + N,x - N, and N + X.

임의 액세스 반복기 또는 다른 반복기 개체 포인터 걸릴 수 있다는 유의 하십시오.모든 반복기 할당 하거나 복사할 수 있습니다.이러한 간단한 개체 간주 됩니다 자주 전달와 값으로, 참조로 않은 반환 되.또한 앞에서 설명한 작업을 유효한 반복기에서 수행 하면 예외가 throw 할 수 있습니다 note입니다.

반복기 범주 계층 3 시퀀스를 표시 하 여 요약할 수 있습니다.시퀀스에 대 한 쓰기 액세스를 사용할 수 있습니다.

output iterator
   -> forward iterator
   -> bidirectional iterator
   -> random-access iterator

오른쪽 화살표 "바꿀 수 있습니다." 즉 정방향 반복기 깔끔하게 출력 반복기 예를 들어, 작동에 대 한 호출 하는 알고리즘 하지만 않은 다른 합니다.

시퀀스에 대 한 읽기 전용 액세스를 사용할 수 있습니다.

input iterator
   -> forward iterator
   -> bidirectional iterator
   -> random-access iterator

입력된 반복기 가장 취약 한 모든 종류의이 경우입니다.

마지막으로 시퀀스를 읽기/쓰기 액세스에 대 한 중 하나를 사용할 수 있습니다.

forward iterator
   -> bidirectional iterator
   -> random-access iterator

적절 한 읽기/쓰기 액세스 순서를 지정 하려면 지 원하는 경우 반복기의 범주 이름으로 사용할 수 있도록 개체 포인터는 임의 액세스 반복기로 항상 사용 될 수 있습니다.

반복기는 Iterator 이외의 개체 포인터도 특수화 하는 데 필요한 멤버 형식을 정의 해야 iterator_traits<Iterator>.파생 하 여 이러한 요구 사항을 충족 시킬 수 있습니다 Iterator 공용 기본 클래스에서 반복기.

반복기의이 "대"수의 표준 템플릿 라이브러리에 실질적으로 다른 모든 것이 기본이 됩니다.약속의 반복기 범주로 제한 반복기는 STL의 알고리즘 및 컨테이너에서 어떻게 사용 되는지 볼 수 이해 하는 것이 중요 합니다.

[!참고]

또한 수 있습니다 각에 대해의 STL 컬렉션을 반복 합니다.자세한 내용은 방법: 각 STL 컬렉션에 반복를 참조하십시오.

Visual C++이제 행사 반복기 및 디버그 반복기의 컨테이너 경계를 덮어쓰지 않도록 하려면 확인 했습니다.자세한 내용은 확인 된 반복기디버그 반복기 지원을 참조하십시오.

참고 항목

참조

표준 템플릿 라이브러리

표준 C++ 라이브러리에서 스레드로부터의 안전성