더북(TheBook)

ostream_iteratoristream_iterator와 보완 관계이며 ostream에 객체를 위한 한 번 출력 기능을 제공하는 출력 반복자다. 객체는 << 연산자로 쓴다. ostream_iterator 객체를 생성할 때 각 객체를 출력한 다음에 쓸 구분자 문자열을 옵션으로 지정할 수 있다.

다음은 입력 스트림 반복자를 사용하는 방법을 보여주는 예제다.

// Ex1_02.cpp
// 스트림 반복자 사용하기
#include <numeric>        // accumulate() 함수 - 범위에 속한 원소들의 합계
#include <iostream>       // 표준 스트림
#include <iterator>       // istream_iterator
 
int main()
{
    std::cout << "값은 공백으로 구분해서 입력하세요. 종료하려면 Ctrl+Z를 입력하세요:" << std::endl;
 
    std::cout << "\nThe sum of the values you entered is "
                   << std::accumulate(std::istream_iterator<double>(std::cin),
                        std::istream_iterator<double>(), 0.0)
                   << std::endl;
}

이 예제는 입력 스트림 반복자 cin에 입력한 값들을 accumulate() 함수에 범위로 적용했다. 값은 얼마든지 입력할 수 있다. 두 번째 인수는 끝 스트림(end-of-stream) 반복자로 지정되어 있다. 첫 번째 인수에 지정된 반복자가 하나씩 읽기를 처리하다가 끝 스트림 조건(파일 스트림의 EOF라고도 부른다)이 되었을 때 두 번째 인수로 지정된 끝 스트림 반복자와 일치하게 된다. 키보드로 Ctrl+Z를 입력하면 이 과정이 일어난다.

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