Namespaces
Variants

std::experimental:: ostream_joiner

From cppreference.net
Definido en el encabezado <experimental/iterator>
template <

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

class ostream_joiner ;
(biblioteca fundamentals TS v2)

std::experimental::ostream_joiner es un LegacyOutputIterator de un solo paso que escribe objetos sucesivos en el objeto std::basic_ostream para el cual fue construido, usando operator<< , separados por un delimitador. El delimitador se escribe en el flujo de salida entre cada dos objetos que se escriben. La operación de escritura se realiza cuando el iterador (ya sea desreferenciado o no) es asignado. Incrementar el ostream_joiner es una operación sin efecto.

En una implementación típica, los únicos miembros de datos de ostream_joiner son un puntero al std::basic_ostream asociado, el delimitador, y un miembro bool que indica si la siguiente escritura es para el primer elemento de la secuencia.

En comparación con std::ostream_iterator , ostream_joiner imprime la secuencia delimitadora una vez menos, y no está basado en plantillas para el tipo del objeto a imprimir.

Contenidos

Tipos de miembros

Tipo de miembro Definición
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

Funciones miembro

construye un nuevo ostream_joiner
(función miembro pública)
(destructor)
(implicitly declared)
destruye un ostream_joiner
(función miembro pública)
escribe un objeto a la secuencia de salida asociada
(función miembro pública)
sin operación
(función miembro pública)
sin operación
(función miembro pública)

Funciones no miembro

crea un objeto ostream_joiner , deduciendo los argumentos de tipo de la plantilla a partir de los argumentos de la función
(plantilla de función)

Ejemplo

#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, ", "));
}

Salida:

1, 2, 3, 4, 5

Véase también

iterador de salida que escribe en std::basic_streambuf
(plantilla de clase)
iterador de salida que escribe en std::basic_ostream
(plantilla de clase)
iterador de entrada que lee desde std::basic_istream
(plantilla de clase)