Namespaces
Variants

std::experimental:: ostream_joiner

From cppreference.net
Défini dans l'en-tête <experimental/iterator>
template <

class DelimT,
class CharT = char ,
class Traits = std:: char_traits < CharT >
>

class ostream_joiner ;
(bibliothèque fondamentale TS v2)

std::experimental::ostream_joiner est un LegacyOutputIterator à passage unique qui écrit des objets successifs dans l'objet std::basic_ostream pour lequel il a été construit, en utilisant operator<< , séparés par un délimiteur. Le délimiteur est écrit dans le flux de sortie entre chaque paire d'objets écrits. L'opération d'écriture est effectuée lorsque l'itérateur (qu'il soit déréférencé ou non) est assigné. L'incrémentation du ostream_joiner est une opération sans effet.

Dans une implémentation typique, les seuls membres de données de ostream_joiner sont un pointeur vers le std::basic_ostream associé, le délimiteur, et un membre bool qui indique si la prochaine écriture concerne le premier élément de la séquence.

Comparé à std::ostream_iterator , ostream_joiner imprime la séquence de délimiteurs une fois de moins, et n'est pas templaté sur le type de l'objet à imprimer.

Table des matières

Types membres

Type de membre Définition
char_type CharT
traits_type Traits
ostream_type std:: basic_ostream < CharT, Traits >
value_type void
difference_type void
pointer void
reference void
iterator_category std:: output_iterator_tag

Fonctions membres

construit un nouveau ostream_joiner
(fonction membre publique)
(destructor)
(implicitly declared)
détruit un ostream_joiner
(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)

Fonctions non membres

crée un objet ostream_joiner en déduisant les arguments de type du template à partir des arguments de la fonction
(modèle de fonction)

Exemple

#include <algorithm>
#include <experimental/iterator>
#include <iostream>
#include <iterator>
int main()
{
    int i[] = {1, 2, 3, 4, 5};
    std::copy(std::begin(i),
              std::end(i),
              std::experimental::make_ostream_joiner(std::cout, ", "));
}

Sortie :

1, 2, 3, 4, 5

Voir aussi

itérateur de sortie qui écrit dans std::basic_streambuf
(modèle de classe)
itérateur de sortie qui écrit dans std::basic_ostream
(modèle de classe)
itérateur d'entrée qui lit depuis std::basic_istream
(modèle de classe)