Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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++