Compartir a través de


clase

La plantilla de clase describe un objeto iterador de salida que escribe elementos de caracteres sucesivos en el flujo de salida con la extracción . Los s difieren de los de la clase en tener caracteres en lugar de un tipo genérico en el tipo de objeto que se inserta en el flujo de salida.

Sintaxis

template <class CharType = char, class Traits = char_traits <CharType>>

Parámetros

CharType
Tipo que representa el tipo de caracteres para ostreambuf_iterator. Este argumento es opcional y el valor predeterminado es .

Traits
Tipo que representa el tipo de caracteres para ostreambuf_iterator. Este argumento es opcional y el valor predeterminado es .

Comentarios

La clase ostreambuf_iterator debe satisfacer los requisitos de un iterador de salida. Los algoritmos se pueden escribir directamente en el flujo de salida mediante . La clase proporciona un iterador de flujo de bajo nivel que permite acceso al flujo raw (sin formato) de E/S en forma de caracteres y la capacidad de omitir las traslaciones de caracteres y el almacenamiento en búfer asociados a los iteradores de flujo de alto nivel.

Constructores

Constructor Descripción
ostreambuf_iterator Construye un objeto que se inicializa para escribir caracteres en el flujo de salida.

Typedefs

Nombre de tipo Descripción
char_type Tipo que proporciona el tipo de los caracteres de .
ostream_type Tipo que proporciona el tipo de flujo de .
streambuf_type Tipo que proporciona el tipo de flujo de .
traits_type Tipo que proporciona el tipo de rasgos de los caracteres de .

Funciones miembro

Función de miembro Descripción
failed Comprueba si hay errores en una inserción en el búfer del flujo de salida.

Operadores

Operador Descripción
operator* Operador de desreferenciación usado para implementar la expresión de iterador de salida .
operator++ Operador de incremento no funcional que devuelve un objeto al mismo objeto que señalaba antes de que se llamara a la operación.
operator= El operador inserta un carácter en el búfer del flujo asociado.

Requisitos

Encabezado:

Espacio de nombres:

ostreambuf_iterator::char_type

Tipo que proporciona el tipo de los caracteres de .

typedef CharType char_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla .

Ejemplo

// ostreambuf_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
   *charOutBuf = 'O';
   charOutBuf++;
   *charOutBuf = 'U';
   charOutBuf++;
   *charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
OUT.

ostreambuf_iterator::failed

Comprueba si hay errores en una inserción en el búfer del flujo de salida.

bool failed() const throw();

Valor devuelto

si no se han producido errores anteriormente en ninguna inserción del búfer del flujo de salida; de otro modo, .

Comentarios

La función miembro devuelve si algún intento anterior de insertar un carácter en el búfer de flujo de salida no se realizó correctamente.

Ejemplo

// ostreambuf_iterator_failed.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

   *charOut = 'a';
   charOut ++;
   *charOut  = 'b';
   charOut ++;
   *charOut = 'c';
   cout << " are characters output individually." << endl;

   bool b1 = charOut.failed ( );
   if (b1)
       cout << "At least one insertion failed." << endl;
   else
       cout << "No insertions failed." << endl;
}
abc are characters output individually.
No insertions failed.

ostreambuf_iterator::operator*

Un operador de desreferencia no funcional usado para implementar la expresión de iterador de salida .

ostreambuf_iterator<CharType, Traits>& operator*();

Valor devuelto

El objeto de iterador ostreambuf.

Comentarios

Este operador solo funciona en la expresión de iterador de salida para generar caracteres para transmitir el búfer. Aplicado a , devuelve el iterador; devuelve .

Ejemplo

// ostreambuf_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main()
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;   // no effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator++

Operador de incremento no funcional que devuelve un al mismo carácter al que se dirigió antes de llamar a la operación.

ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);

Valor devuelto

Referencia al carácter dirigido originalmente o a un objeto definido por la implementación que se puede convertir a .

Comentarios

El operador se usa para implementar la expresión de iterador de salida .

Ejemplo

// ostreambuf_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator=

El operador inserta un carácter en el búfer del flujo asociado.

ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);

Parámetros

_Char
El carácter que se va a insertar en el búfer de secuencia.

Valor devuelto

Una referencia al carácter insertado en el búfer de secuencia.

Comentarios

Operador de asignación usado para implementar la expresión de iterador de salida para escribir en un flujo de salida.

Ejemplo

// ostreambuf_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::ostreambuf_iterator

Construye un objeto que se inicializa para escribir caracteres en el flujo de salida.

ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();

Parámetros

strbuf
El objeto streambuf de salida que se ha usado para inicializar el puntero de búfer de flujo de salida.

Ostr
El objeto de flujo de salida que se ha usado para inicializar el puntero de búfer de flujo de salida.

Comentarios

El primer constructor inicializa el puntero de búfer de flujo de salida con .

El segundo constructor inicializa el puntero de búfer de flujo de salida con *. El puntero almacenado no debe ser un puntero nulo.

Ejemplo

// ostreambuf_iteratorOstreambuf_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main()
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

   *charOut = 'O';
   charOut ++;
   *charOut  = 'U';
   charOut ++;
   *charOut = 'T';
   cout << " are characters output individually." << endl;

   ostreambuf_iterator<char> strOut ( cout );
   string str = "These characters are being written to the output stream.\n ";
   copy ( str.begin ( ), str. end ( ), strOut );
}
OUT are characters output individually.
These characters are being written to the output stream.

ostreambuf_iterator::ostream_type

Tipo que proporciona el tipo de flujo de .

typedef basicOstream<CharType, Traits> ostream_type;

Comentarios

El tipo es un sinónimo de

Ejemplo

Vea para obtener un ejemplo de cómo declarar y usar .

ostreambuf_iterator::streambuf_type

Tipo que proporciona el tipo de flujo de .

typedef basic_streambuf<CharType, Traits> streambuf_type;

Comentarios

El tipo es un sinónimo de , una clase de secuencia para búferes de E/S que se convierte cuando se especializa en el tipo de carácter .

Ejemplo

Vea para obtener un ejemplo de cómo declarar y usar .

ostreambuf_iterator::traits_type

Tipo que proporciona el tipo de rasgos de los caracteres de .

typedef Traits traits_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla .

Ejemplo

// ostreambuf_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
   *charOutBuf = 'O';
   charOutBuf++;
   *charOutBuf = 'U';
   charOutBuf++;
   *charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
The characters written to the output stream
by charOutBuf are: OUT.

Vea también

iterador
Seguridad para subprocesos en la biblioteca estándar de C++
Referencia de biblioteca estándar de C++