Namespaces
Variants

std::ostream_iterator

De fr.cppreference.net
 
 
Bibliothèque d'itérateurs
Concepts d'itérateur
Primitives d'itérateur
Concepts et utilitaires d'algorithmes
Concepts invocables indirects
Exigences communes des algorithmes
(C++20)
(C++20)
(C++20)
Utilitaires
(C++20)
Adaptateurs d'itérateur
Accès aux plages
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
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

void

(jusqu'en C++20)

std::ptrdiff_t

(depuis C++20)
pointer void
reference void
char_type CharT
traits_type Traits
ostream_type std:: basic_ostream < CharT, Traits >

Les types membres iterator_category , value_type , difference_type , pointer et reference doivent être obtenus en héritant de std:: iterator < std:: output_iterator_tag , void , void , void , void > .

(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)