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 |
(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) |