ostream_iterator는 istream_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를 입력하면 이 과정이 일어난다.