std::ostream_iterator
| Défini dans l'en-tête <iterator>
|
||
template< class T,
class CharT = char,
class Traits = std::char_traits<CharT> >
class ostream_iterator
: public std::iterator<std::output_iterator_tag, void, void, void, void>
|
(jusqu'à C++17) | |
template< class T,
class CharT = char,
class Traits = std::char_traits<CharT> >
class ostream_iterator;
|
(depuis C++17) | |
std::ostream_iterator est un itérateur de sortie hérité à passage unique LegacyOutputIterator qui écrit des objets successifs de type T dans l'objet std::basic_ostream pour lequel il a été construit, en utilisant operator<<. Une chaîne de délimitation facultative est écrite dans le flux de sortie après chaque opération d'écriture. L'opération d'écriture est effectuée lorsque l'itérateur (qu'il soit déréférencé ou non) est affecté. Incrémenter le std::ostream_iterator est une opération nulle.
Dans une implémentation typique, les seuls membres de données de std::ostream_iterator sont un pointeur vers l'objet std::basic_ostream et un pointeur vers le premier caractère de la chaîne de délimitation.
Lors de l'écriture de caractères, std::ostreambuf_iterator est plus efficace, car il évite le surcoût de construction et de destruction de l'objet sentinelle une fois par caractère.
Types membres
| Type de membre | Définition | ||||
iterator_category
|
std:: output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
char_type
|
CharT
|
||||
traits_type
|
Traits
|
||||
ostream_type
|
std:: basic_ostream < CharT, Traits > |
|
Les types membres
|
(jusqu'à C++17) |
Fonctions membres
|
construit un nouveau ostream_iterator
(fonction membre publique) |
|
détruit un
ostream_iterator
(fonction membre publique) |
|
|
écrit un objet dans la séquence de sortie associée
(fonction membre publique) |
|
|
opération nulle
(fonction membre publique) |
|
|
opération nulle
(fonction membre publique) |
Exemple
#include <iostream> #include <iterator> #include <numeric> #include <sstream> int main() { std::istringstream str("0.11 0.22 0.33 0.44"); std::partial_sum(std::istream_iterator<double>(str), std::istream_iterator<double>(), std::ostream_iterator<double>(std::cout, ", ")); std::cout << '\n'; }
Sortie :
0.11, 0.33, 0.66, 1.1,
Voir aussi
|
itérateur de sortie qui écrit dans
std::basic_streambuf
(modèle de classe) |
|
|
itérateur d'entrée qui lit depuis
std::basic_istream
(modèle de classe) |
|
|
(library fundamentals TS v2)
|
un itérateur de sortie qui écrit des éléments successifs dans un flux de sortie, en séparant les éléments adjacents par un délimiteur
(modèle de classe) |