더북(TheBook)

1.4.2 반복자 카테고리

모든 반복자 타입은 복제 생성자, 복제 할당 연산자, 소멸자를 가져야 한다. 반복자가 가리키는 객체들은 교환(swap)할 수 있어야 하며 이에 대한 더 깊이 있는 설명은 2장에서 할 것이다. 반복자는 기능 수준에 따라 다섯 가지 카테고리로 나뉜다. 반복자는 알고리즘이 동작할 원소들의 범위를 지정하는 데 쓰이며, 사용하는 알고리즘에 따라 반복자에 필요한 기능도 그에 따라 달라져야 한다. 카테고리는 새로운 반복자 템플릿이 아니다. 반복자 타입이 지원하는 카테고리는 iterator 템플릿의 타입 매개변수에 쓰인 인수 값으로 식별할 수 있다. 이에 대해서는 잠시 뒤에서 설명하겠다.

컨테이너를 위해 얻을 수 있는 반복자의 카테고리는 컨테이너의 종류에 따라 정해진다. 카테고리는 알고리즘이 반복자의 기능을 결정하게 도와준다. 알고리즘은 반복자 인수의 카테고리를 두 가지 방식으로 이용할 수 있다. 첫 번째는 연산에 필요한 최소 기능 요구 조건을 만족시켰는지 확인하는 방식이며 두 번째는 반복자가 최소 요구 조건 이상을 충족한다면 알고리즘은 연산을 더 효율적으로 수행하기 위해 확장 기능을 사용하는 방식이다. 물론, 요구 기능 수준을 만족하는 반복자를 지원하는 컨테이너의 원소들에만 알고리즘을 적용할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.