반복자 카테고리

반복자와 알고리즘

반복자 범주가 지원하는 연산을 결정합니다. 그래서 어떤 알고리즘이 어떤 컨테이너에 가능한지 반복자 범주를 보면 알 수 있습니다.

begin첫 번째 요소를 가리키는 반복자
end마지막 요소 바로 다음 위치
*it반복자가 가리키는 값을 읽거나 씀
Input한 번 읽기

입력 스트림처럼 앞으로 가며 값을 읽는 데 적합합니다.

Output한 번 쓰기

출력 스트림처럼 값을 순서대로 기록합니다.

Forward여러 번 순방향 순회

forward_list처럼 앞으로만 이동합니다.

Bidirectional앞뒤 이동

list, map, set처럼 앞뒤 원소로만 이동하며 ++--를 지원합니다.

Random임의 위치 접근

vector, deque처럼 it + n, 거리 계산, 순서 비교로 위치를 바로 계산합니다.

std::sort는 임의 접근 필요

list에는 멤버 함수 sort()를 사용합니다.

범위는 반열린 구간

[begin, end) 형태라 end는 실제 요소가 아닙니다.

range-for도 반복자 기반

문법은 간단하지만 내부적으로 begin/end를 사용합니다.