더북(TheBook)

4. 양방향 반복자는 순방향 반복자와 같은 기능에 역방향으로 이동할 수 있다. 따라서 반복자를 증가시켜 다음 원소로 이동하는 것도 가능하고 --iteriter-- 같은 감소 연산자로 이전 원소로 이동하는 것도 가능하다.

5. 랜덤 액세스 반복자는 양방향 반복자와 같은 기능에 원소들에 마음대로 접근할 수 있는 기능을 더한 것이다. 양방향 반복자에서 허용되는 연산에 다음 연산을 지원한다.

정수만큼 증가하거나 감소: iter + n, iter - n, iter += n, iter -= n

정수로 인덱스 접근: iter[n], *(iter+n)으로 표현한 것과 같음

두 반복자의 차이: iter1 - iter2, 원소들의 차이를 정수로 반환

반복자 비교: iter1 < iter2, iter1 > iter<= iter2, iter1 >= iter2

 

범위로 지정된 원소들을 정렬하려면 범위를 랜덤 액세스 반복자로 지정해야 한다. 랜덤 액세스 반복자는 첨자 연산자 []를 사용할 수 있다. 반복자 first가 있다면 first[3]*(first + 3)과 같으며 4번째 원소에 접근하라는 뜻이 된다. 일반적으로 iter[n]에서 iter는 반복자, n은 오프셋이므로 iter[n]iter에서 오프셋 n만큼 떨어진 원소를 반환한다. 반복자의 첨자 연산자에 사용하는 인덱스는 검사되지 않는 것에 주의하자. 인덱스 값이 적법한 범위를 벗어난 값이어도 이를 막을 방법이 없다.

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