Definido en el encabezado <iterator>
template< class T,
          class CharT = char,
          class Traits = std::char_traits<CharT> >
class ostream_iterator : public std::iterator<std::output_iterator_tag,
                                              void, void, void, void>
(hasta C ++ 17)
template< class T,
          class CharT = char,
          class Traits = std::char_traits<CharT>>
class ostream_iterator;
(desde C ++ 17)

std::ostream_iterator es un LegacyOutputIterator de un solo paso que escribe objetos sucesivos de tipo T en el std::basic_ostream objeto para el que fue construido, utilizando operator<<. La cadena de delimitador opcional se escribe en el flujo de salida después de cada operación de escritura. La operación de escritura se realiza cuando se asigna el iterador (ya sea desreferenciado o no). Incrementando el std::ostream_iterator es una operación no operativa.

En una implementación típica, los únicos miembros de datos de std::ostream_iterator son un puntero al asociado std::basic_ostream y un puntero al primer carácter de la cadena delimitador.

Al escribir personajes, std::ostreambuf_iterator es más eficiente, ya que evita la sobrecarga de construir y destruir el objeto centinela una vez por personaje.

Tipos de miembros

Tipo de miembro Definición
char_type CharT
traits_type Traits
ostream_type std::basic_ostream<CharT, Traits>

Funciones de los miembros

(constructor) construye un nuevo ostream_iterator
(función de miembro público)
(incinerador de basuras) destruye un ostream_iterator
(función de miembro público)
operador = escribe un objeto en la secuencia de salida asociada
(función de miembro público)
operador* no operativa
(función de miembro público)
operador ++operador ++(En t) no operativa
(función de miembro público)

Tipos de miembros

Tipo de miembro Definición
value_type void
difference_type void
pointer void
reference void
iterator_category std::output_iterator_tag

Estos tipos de miembros deben obtenerse heredando de std::iterator<std::output_iterator_tag, void, void, void, void>.

(hasta C ++ 17)

Ejemplo

#include <iostream>
#include <sstream>
#include <iterator>
#include <numeric>
 
int main()
{
    std::istringstream str("0.1 0.2 0.3 0.4");
    std::partial_sum(std::istream_iterator<double>(str),
                      std::istream_iterator<double>(),
                      std::ostream_iterator<double>(std::cout, " "));
}

Producción:

0.1 0.3 0.6 1

Ver también

ostreambuf_iterator iterador de salida que escribe en std::basic_streambuf
(plantilla de clase)
istream_iterator iterador de entrada que lee de std::basic_istream
(plantilla de clase)
std :: experimental :: ostream_joiner
(fundamentos de la biblioteca TS v2)
Un iterador de salida que escribe elementos sucesivos en un flujo de salida, separando los elementos adyacentes con un delimitador.
(plantilla de clase)