Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL 입력 반복기(Input Iterator) 개념과 사용법 총정리

이 튜토리얼에서는 C++의 입력 반복기(Input Iterator)에 대해 자세히 알아보겠습니다.

입력 반복기는 STL(표준 템플릿 라이브러리)에서 제공하는 다섯 가지 반복기 중 하나로, 그중에서도 가장 단순하고 기능이 제한적인 반복기입니다. 주로 순차 입력 작업에 사용되며, 값을 하나씩 읽은 후 반복기가 다음 요소로 이동하는 방식으로 동작합니다.

입력 반복기의 특징

입력 반복기는 다음과 같은 특징을 가지고 있습니다.

  • 값을 읽기만 가능하며, 참조된 요소를 수정할 수 없습니다.
  • 단방향으로만 이동할 수 있어 한 번 지나간 요소를 다시 접근할 수 없습니다.
  • 전방위 연산자(++)를 통해서만 앞으로 이동합니다.
  • 동일한 위치를 두 번 읽는 것을 보장하지 않으므로, 단일 패스(single-pass) 알고리즘에 적합합니다.

예제 코드

다음 예제는 벡터(vector) 컨테이너를 반복기를 사용하여 순회하며 각 요소를 출력하는 프로그램입니다.

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> v1 = { 1, 2, 3, 4, 5 };
    // 반복기 선언
    vector<int>::iterator i1;

    // 반복기를 통해 요소를 하나씩 순회
    for (i1 = v1.begin(); i1 != v1.end(); ++i1) {
        cout << (*i1) << " ";
    }
    return 0;
}

실행 결과

1 2 3 4 5

코드 설명

위 코드에서 v1.begin()은 벡터의 첫 번째 요소를 가리키는 반복기를 반환하고, v1.end()는 마지막 요소 다음 위치를 가리킵니다. 반복문이 실행되는 동안 역참조 연산자(*)를 사용하여 현재 반복기가 가리키는 값에 접근하고, 증가 연산자(++)를 통해 다음 요소로 이동합니다.

입력 반복기는 istream_iterator처럼 스트림에서 데이터를 순차적으로 읽어들이는 상황에서 특히 유용하게 활용됩니다. 다만 쓰기 작업이 필요하다면 출력 반복기(Output Iterator)를, 양방향 이동이 필요하다면 양방향 반복기(Bidirectional Iterator)를 사용하는 것이 좋습니다.