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 ostream_iterator describe un objeto iterador de salida que escribe elementos sucesivos en el flujo de salida con la extracción .
Sintaxis
template <class Type, class CharType = char, class Traits = char_traits <CharType>>
class ostream_iterator
Parámetros
Type
Tipo de objeto que se va a insertar en el flujo de salida.
CharType
Tipo que representa el tipo de caracteres para . Este argumento es opcional y el valor predeterminado es .
Traits
Tipo que representa el tipo de caracteres para . Este argumento es opcional y el valor predeterminado es .*
La clase ostream_iterator debe satisfacer los requisitos de un iterador de salida. Los algoritmos se pueden escribir directamente en el flujo de salida mediante .
Constructores
| Constructor | Descripción |
|---|---|
ostream_iterator |
Construye una clase que se inicializa y delimita 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 . |
traits_type |
Tipo que proporciona el tipo de rasgos de los caracteres de . |
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= |
Operador de asignación usado para implementar la expresión de iterador de salida para escribir en un flujo de salida. |
Requisitos
Encabezado:
Espacio de nombres:
ostream_iterator::char_type
Un tipo que proporciona el tipo de caracteres del iterador.
typedef CharType char_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla .
Ejemplo
// ostream_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to the output stream\n"
<< "by intOut are:" << endl;
*intOut = 10;
*intOut = 20;
*intOut = 30;
}
The integers written to the output stream
by intOut are:
10
20
30
ostream_iterator::operator*
Operador de desreferenciación usado para implementar la expresión de iterador de salida .
ostream_iterator<Type, CharType, Traits>& operator*();
Valor devuelto
Una referencia a .
Comentarios
Los requisitos de un iterador de salida que debe satisfacer solo requieren que la expresión sea válida y no diga nada sobre o por sí mismos. El operador miembro en esta implementación devuelve .
Ejemplo
// ostream_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
Elements written to output stream:
10
20
30
ostream_iterator::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.
ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);
Valor devuelto
Una referencia a .
Comentarios
Estos operadores miembro devuelven .
Ejemplo
// ostream_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
Elements written to output stream:
10
20
30
ostream_iterator::operator=
Operador de asignación usado para implementar la expresión de output_iterator para escribir en un flujo de salida.
ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);
Parámetros
val
El valor del objeto de tipo que se va a insertar en el flujo de salida.
Valor devuelto
El operador inserta en el flujo de salida asociado al objeto , seguido del delimitador especificado en (si existe) y, a continuación, devuelve una referencia a .
Comentarios
Los requisitos de un iterador de salida que debe satisfacer solo requieren que la expresión sea válida y no diga nada sobre el operador o el operador = por sí mismo. Este operador miembro devuelve .
Ejemplo
// ostream_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
Elements written to output stream:
10
20
30
ostream_iterator::ostream_iterator
Construye una clase que se inicializa y delimita para escribir caracteres en el flujo de salida.
ostream_iterator(ostream_type& _Ostr);
ostream_iterator(
ostream_type& _Ostr,
const CharType* _Delimiter);
Parámetros
_Ostr
Flujo de salida de tipo que se va a iterar.
_Delimiter
El delimitador que se inserta en el flujo de salida entre valores.
Comentarios
El primer constructor inicializa el puntero del flujo de salida con . El puntero de la cadena de delimitador designa una cadena vacía.
El segundo constructor inicializa el puntero de flujo de salida con y el puntero de cadena delimitador con .
Ejemplo
// ostream_iterator_ostream_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
ostream_iterator<int> intOut ( cout , "\n" );
*intOut = 10;
intOut++;
*intOut = 20;
intOut++;
int i;
vector<int> vec;
for ( i = 1 ; i < 7 ; ++i )
{
vec.push_back ( i );
}
// Write elements to standard output stream
cout << "Elements output without delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout ) );
cout << endl;
// Write elements with delimiter " : " to output stream
cout << "Elements output with delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout, " : " ) );
cout << endl;
}
10
20
Elements output without delimiter: 123456
Elements output with delimiter: 1 : 2 : 3 : 4 : 5 : 6 :
ostream_iterator::ostream_type
Un tipo que proporciona el tipo de secuencia del iterador.
typedef basic_ostream<CharType, Traits> ostream_type;
Comentarios
El tipo es un sinónimo de , una clase de flujo de la jerarquía de iostream que define los objetos que se pueden usar para escribir.
Ejemplo
Vea para obtener un ejemplo de cómo declarar y usar .
ostream_iterator::traits_type
Un tipo que proporciona el tipo de rasgos de los caracteres del iterador.
typedef Traits traits_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla .
Ejemplo
// ostream_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// The following not OK, but are just the default values:
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to output stream\n"
<< "by intOut are:" << endl;
*intOut = 1;
*intOut = 10;
*intOut = 100;
}
The integers written to output stream
by intOut are:
1
10
100
Vea también
<iterator>
Seguridad para subprocesos en la biblioteca estándar de C++
Referencia de biblioteca estándar de C++