Partager via


ostream_iterator, classe

Le modèle de classe ostream_iterator décrit un objet itérateur de sortie qui écrit des éléments successifs dans le flux de sortie avec l’extraction .

Syntaxe

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

Paramètres

Type
Type d'objet à insérer dans le flux de sortie.

CharType
Type qui représente le type de caractère de . Cet argument est facultatif et sa valeur par défaut est .

Traits
Type qui représente le type de caractère de . Cet argument est facultatif et la valeur par défaut est .*

La classe ostream_iterator doit répondre aux exigences d’un itérateur de sortie. Les algorithmes peuvent être enregistrés directement dans le flux de sortie à l'aide de .

Constructeurs

Constructeur Description
ostream_iterator Construit un qui est initialisé et délimité en vue de son enregistrement dans le flux de sortie.

Typedefs

Nom de type Description
char_type Type qui fournit le type de caractère de .
ostream_type Type qui fournit le type de flux de .
traits_type Type qui fournit le type de caractéristique de .

Opérateurs

Opérateur Description
operator* Opérateur de déreferencing utilisé pour implémenter l’expression d’itérateur de sortie.
operator++ Opérateur d'incrément non fonctionnel qui retourne un au même objet qu'il a traité avant que l'opération n'ait été appelée.
operator= Opérateur d’affectation utilisé pour implémenter l’expression itérateur de sortie pour l’écriture dans un flux de sortie.

Spécifications

En-tête :

Espace de noms :

ostream_iterator::char_type

Type qui fournit le type de caractère de l’itérateur.

typedef CharType char_type;

Notes

Le type est un synonyme du paramètre de modèle .

Exemple

// 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*

Opérateur de déreferencing utilisé pour implémenter l’expression d’itérateur de sortie.

ostream_iterator<Type, CharType, Traits>& operator*();

Valeur de retour

Référence à .

Notes

Les exigences d’un itérateur de sortie que le doit satisfaire nécessitent uniquement la validité de l’expression et n’indique rien sur le ou sur leur propre. L’opérateur membre dans cette implémentation retourne .

Exemple

// 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++

Opérateur d'incrément non fonctionnel qui retourne un au même objet qu'il a traité avant que l'opération n'ait été appelée.

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

Valeur de retour

Référence à .

Notes

Ces opérateurs membres retournent tous les deux .

Exemple

// 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=

Opérateur d’affectation utilisé pour implémenter l’expression output_iterator pour l’écriture dans un flux de sortie.

ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);

Paramètres

val
Valeur de l’objet de type à insérer dans le flux de sortie.

Valeur de retour

L’opérateur insère dans le flux de sortie associé à l’objet, suivi du délimiteur spécifié dans le (le cas échéant), puis retourne une référence à l’objet .

Notes

Les conditions requises pour un itérateur de sortie que le doit satisfaire nécessitent uniquement la validité de l’expression et n’indique rien sur l’opérateur ou l’opérateur= sur leur propre. Cet opérateur membre retourne .

Exemple

// 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

Construit un qui est initialisé et délimité en vue de son enregistrement dans le flux de sortie.

ostream_iterator(ostream_type& _Ostr);

ostream_iterator(
    ostream_type& _Ostr,
    const CharType* _Delimiter);

Paramètres

_Ostr
Flux de sortie de type à itérer.

_Delimiter
Délimiteur qui est inséré dans le flux de sortie entre les valeurs.

Notes

Le premier constructeur initialise le pointeur de flux de sortie avec . Le pointeur de chaîne de délimiteur désigne une chaîne vide.

Le deuxième constructeur initialise le pointeur de flux de sortie avec et le pointeur de chaîne de délimiteur avec .

Exemple

// 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

Type qui fournit le type de flux de l’itérateur.

typedef basic_ostream<CharType, Traits> ostream_type;

Notes

Le type est un synonyme de , une classe de flux de la hiérarchie iostream qui définit des objets qui peuvent être utilisés pour l’écriture.

Exemple

Consultez un exemple de déclaration et d’utilisation .

ostream_iterator::traits_type

Type qui fournit le type des caractéristiques de caractère de l’itérateur.

typedef Traits traits_type;

Notes

Le type est un synonyme du paramètre de modèle .

Exemple

// 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

Voir aussi

<iterator>
Sécurité des threads dans la bibliothèque C++ Standard
Informations de référence sur la bibliothèque standard C++