Namespaces
Variants

std::experimental:: ostream_joiner

From cppreference.net
헤더 파일에 정의됨 <experimental/iterator>
template <

class DelimT,
class CharT = char ,
class Traits = std:: char_traits < CharT >
>

class ostream_joiner ;
(라이브러리 fundamentals TS v2)

std::experimental::ostream_joiner 는 단일 패스 LegacyOutputIterator 로, 생성된 std::basic_ostream 객체에 연속적인 객체들을 operator<< 를 사용하여 구분자와 함께 기록합니다. 구분자는 기록되는 두 객체 사이마다 출력 스트림에 기록됩니다. 기록 작업은 반복자(역참조 여부와 관계없이)가 할당될 때 수행됩니다. ostream_joiner 를 증가시키는 것은 아무 작업도 수행하지 않습니다.

일반적인 구현에서 ostream_joiner 의 유일한 데이터 멤버는 연결된 std::basic_ostream 에 대한 포인터, 구분자, 그리고 다음 쓰기 작업이 시퀀스의 첫 번째 요소에 대한 것인지 여부를 나타내는 bool 멤버입니다.

std::ostream_iterator 와 비교했을 때, ostream_joiner 는 구분자 시퀀스를 한 번 덜 출력하며, 출력할 객체의 타입에 대해 템플릿화되지 않습니다.

목차

멤버 타입

멤버 타입 정의
char_type CharT
traits_type Traits
ostream_type std:: basic_ostream < CharT, Traits >
value_type void
difference_type void
pointer void
reference void
iterator_category std:: output_iterator_tag

멤버 함수

새로운 ostream_joiner 를 생성합니다
(public 멤버 함수)
(소멸자)
(암시적으로 선언됨)
ostream_joiner 를 소멸시킵니다
(public 멤버 함수)
객체를 연관된 출력 시퀀스에 기록합니다
(public 멤버 함수)
아무 작업도 수행하지 않음
(public 멤버 함수)
아무 작업도 수행하지 않음
(public 멤버 함수)

비멤버 함수

함수 인자들로부터 템플릿의 타입 인자들을 추론하여 ostream_joiner 객체를 생성합니다
(함수 템플릿)

예제

#include <algorithm>
#include <experimental/iterator>
#include <iostream>
#include <iterator>
int main()
{
    int i[] = {1, 2, 3, 4, 5};
    std::copy(std::begin(i),
              std::end(i),
              std::experimental::make_ostream_joiner(std::cout, ", "));
}

출력:

1, 2, 3, 4, 5

참고 항목

std::basic_streambuf 에 쓰기를 수행하는 출력 반복자
(클래스 템플릿)
std::basic_ostream 에 쓰기를 수행하는 출력 반복자
(클래스 템플릿)
std::basic_istream 에서 읽기를 수행하는 입력 반복자
(클래스 템플릿)