Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O modelo de classe ostream_iterator descreve um objeto de iterador de saída que grava elementos sucessivos no fluxo de saída com a extração de .
Sintaxe
template <class Type, class CharType = char, class Traits = char_traits <CharType>>
class ostream_iterator
Parâmetros
Type
O tipo de objeto a ser inserido no fluxo de saída.
CharType
O tipo que representa o tipo de caractere para . Esse argumento é opcional e o valor padrão é .
Traits
O tipo que representa o tipo de caractere para . Esse argumento é opcional e o valor padrão é .*
A classe ostream_iterator deve atender aos requisitos de um iterador de saída. Os algoritmos podem ser gravados diretamente nos fluxos de saída usando um .
Construtores
| Construtor | Descrição |
|---|---|
ostream_iterator |
Constrói uma que é inicializada e delimitada a gravar no fluxo de saída. |
Typedefs
| Nome do tipo | Descrição |
|---|---|
char_type |
Um tipo que é fornecido para o tipo de caractere do . |
ostream_type |
Um tipo que é fornecido para o tipo de fluxo da . |
traits_type |
Um tipo que fornece o tipo de característica do caractere da . |
Operadores
| Operador | Descrição |
|---|---|
operator* |
Operador de desreferenciamento usado para implementar a expressão de iterador de saída. |
operator++ |
Um operador de incremento não funcional que retorna uma para o mesmo objeto que foi tratado antes de a operação ser chamada. |
operator= |
Operador de atribuição usado para implementar a expressão de iterador de saída para gravação em um fluxo de saída. |
Requisitos
Cabeçalho:
Namespace:
ostream_iterator::char_type
Um tipo que é fornecido para o tipo de caractere do iterador.
typedef CharType char_type;
Comentários
O tipo é um sinônimo do parâmetro de modelo.
Exemplo
// 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::operador*
Operador de desreferenciamento usado para implementar a expressão de iterador de saída.
ostream_iterator<Type, CharType, Traits>& operator*();
Valor de retorno
Uma referência ao .
Comentários
Os requisitos para um iterador de saída que deve atender exigem apenas que a expressão seja válida e não diga nada sobre o ou o por conta própria. O operador de membro nesta implementação retorna .
Exemplo
// 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++
Um operador de incremento não funcional que retorna uma para o mesmo objeto que foi tratado antes de a operação ser chamada.
ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);
Valor de retorno
Uma referência ao .
Comentários
Esses dois operadores de membros retornam .
Exemplo
// 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 atribuição usado para implementar a expressão output_iterator para gravar em um fluxo de saída.
ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);
Parâmetros
val
O valor do objeto do tipo a ser inserido no fluxo de saída.
Valor de retorno
O operador insere no fluxo de saída associado ao objeto, seguido pelo delimitador especificado no (se houver) e retorna uma referência ao .
Comentários
Os requisitos para um iterador de saída que deve atender exigem que apenas a expressão seja válida e não diga nada sobre o operador ou o operador= por conta própria. Esse operador de membro retorna .
Exemplo
// 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
Constrói uma que é inicializada e delimitada a gravar no fluxo de saída.
ostream_iterator(ostream_type& _Ostr);
ostream_iterator(
ostream_type& _Ostr,
const CharType* _Delimiter);
Parâmetros
_Ostr
O fluxo de saída do tipo a ser iterado.
_Delimiter
O delimitador que é inserido no fluxo de saída entre os valores.
Comentários
O primeiro construtor inicializa o ponteiro de fluxo de saída com . O ponteiro de cadeia de caracteres delimitador designa uma cadeia de caracteres vazia.
O segundo construtor inicializa o ponteiro de fluxo de saída com e o ponteiro de cadeia de caracteres delimitador com .
Exemplo
// 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
Um tipo que é fornecido para o tipo de fluxo do iterador.
typedef basic_ostream<CharType, Traits> ostream_type;
Comentários
O tipo é um sinônimo para uma classe de fluxo da hierarquia iostream que define objetos que podem ser usados para gravação.
Exemplo
Consulte um exemplo de como declarar e usar .
ostream_iterator::traits_type
Um tipo que fornece o tipo de característica do caractere do iterador.
typedef Traits traits_type;
Comentários
O tipo é um sinônimo do parâmetro de modelo.
Exemplo
// 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
Confira também
<iterator>
Acesso Thread-Safe na Biblioteca Padrão C++
Referência da biblioteca padrão C++