Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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++