Namespaces
Variants

std::ostream_iterator<T,CharT,Traits>:: ostream_iterator

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
ostream_iterator ( ostream_type & stream, const CharT * delim ) ;
(1)
ostream_iterator ( ostream_type & stream ) ;
(2)

반복자를 생성하며, stream 을 연관된 스트림으로 설정합니다. 이는 stream 의 주소를 저장함으로써 수행됩니다.

1) 구분자로 delim 을 사용합니다.
2) 구분자로 널 포인터를 사용합니다.

매개변수

stream - 이 반복자가 접근할 출력 스트림
delim - 각 출력 후 스트림에 삽입될 널 종료 문자열

예제

#include <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
int main()
{
    std::ostream_iterator<char> oo{std::cout};
    std::ostream_iterator<int> i1{std::cout, ", "};
    std::fill_n(i1, 5, -1);
    *oo++ = '\n';
    std::ostream_iterator<double> i2{std::cout, "; "};
    *i2++ = 3.14;
    *i2++ = 2.71;
    *oo++ = '\n';
    std::common_iterator<std::counted_iterator<std::ostream_iterator<float>>,
                         std::default_sentinel_t>
        first{std::counted_iterator{std::ostream_iterator<float>{std::cout," ~ "}, 5}},
        last{std::default_sentinel};
    std::iota(first, last, 2.2);
    *oo++ = '\n';
}

출력:

-1, -1, -1, -1, -1,
3.14; 2.71;
2.2 ~ 3.2 ~ 4.2 ~ 5.2 ~ 6.2 ~

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 1280 C++98 stream 이 직접 저장됨 대신 해당 주소를 저장함
P2325R3 C++20 기본 생성자가 C++20으로 제공됨
반복자는 default_initializable 이어야 함
요구 사항과 함께
제거됨