📌 개념
- 반복자는 컨테이너와 알고리즘이 하나로 동작하도록 묶어주는 인터페이스 역할.
- iterator로 인해 특정 컨테이너에 종속적이지 않고 독립적이면서도 언제든지 컨테이너와 결합해 동작 가능.
📌 성질
- 컨테이너와 컨테이너 안의 요소를 구별
- 요소의 값 확인
- 컨테이너 안에 있는 요소들 간 이동할 수 있는 연산 제공
- 컨테이너가 효과적으로 처리할 수 있는 방식으로 가용한 연산들을 한정
📌 종류
- 입력 반복자(input iterator): 읽기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 읽을 수 있음
ex) istream
- 출력 반복자(output iterator): 쓰기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 쓸 수 있음
ex) ostream
- 순방향 반복자(forward iterator): 읽/쓰기 모두 가능, 순방향 이동이 가능한 재할당될 수 있는 반복자
- 양방향 반복자(bidirectional iterator): 읽/쓰기 모두 가능, 순/역 방향 이동(--) 가능
ex) list, set, muliset, map, multimap
- 임의 접근 반복자(random access iterator): 읽/쓰기 모두 가능, 임의 접근, 양방향 반복자 기능에 +, -, +=, -=, []연산이 가능
ex) (배열 기반 컨테이너) vector, deque
모든 컨테이너는 양방향 반복자 이상을 제공