더북(TheBook)

컨테이너 내부의 위치를 나타내는 데 필요한 모든 기능에 대해서도 반복자가 사용됩니다. 예를 들어 특정 위치에 원소를 삽입하거나, 특정 위치 또는 범위에 있는 원소를 삭제하는 등의 작업에서도 반복자가 사용됩니다. 반복자를 사용함으로써 소스 코드의 재사용성, 유지 보수, 가독성 측면에서 이점을 얻을 수 있습니다.

Note ≡


C++에서 반복자를 이용하여 범위를 지정하는 함수들의 경우, 보통 start()가 반환하는 반복자는 보통 범위에 포함되고, 따로 명시하지 않았다면 end()가 반환하는 반복자는 범위에 포함되지 않습니다.

array::begin() 함수는 첫 번째 원소를 가리키는 반복자를 반환하고, array::end() 함수는 마지막 원소 다음을 가리키는 반복자를 반환합니다. 따라서 범위 기반 반복문은 다음과 같이 바꿔서 작성할 수 있습니다.

for (auto it = arr.begin(); it != arr.end(); it++)
{
    auto element = (*it);
    std::cout << element << ' ';
}

const_iterator 또는 reverse_iterator 같은 형태의 반복자도 사용할 수 있습니다. const_iterator 반복자는 일반 반복자의 const 버전입니다. const로 선언된 배열에 대해 begin() 또는 end() 같은 함수를 사용하면 const_iterator를 반환합니다.

reverse_iterator를 사용하면 배열을 역방향으로 이동할 수 있습니다. 이 반복자를 ++ 같은 증가 연산자와 함께 사용할 경우, 일반 반복자와 반대 방향으로 이동하게 됩니다.

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