Namespaces
Variants

std::experimental:: ostream_joiner

From cppreference.net
Definiert im Header <experimental/iterator>
template <

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

class ostream_joiner ;
(Library Fundamentals TS v2)

std::experimental::ostream_joiner ist ein Einzel-Durchlauf- LegacyOutputIterator , der aufeinanderfolgende Objekte in das std::basic_ostream -Objekt schreibt, für das es konstruiert wurde, unter Verwendung von operator<< , getrennt durch ein Trennzeichen. Das Trennzeichen wird zwischen jedes zwei geschriebene Objekte in den Ausgabestrom geschrieben. Der Schreibvorgang wird ausgeführt, wenn dem Iterator (ob dereferenziert oder nicht) ein Wert zugewiesen wird. Das Inkrementieren des ostream_joiner ist eine No-Op-Operation.

In einer typischen Implementierung sind die einzigen Datenelemente von ostream_joiner ein Zeiger auf den assoziierten std::basic_ostream , das Trennzeichen und ein bool -Member, der angibt, ob der nächste Schreibvorgang für das erste Element in der Sequenz ist.

Im Vergleich zu std::ostream_iterator gibt ostream_joiner das Trennzeichen eine geringere Anzahl von Malen aus und ist nicht auf den Typ des auszugebenden Objekts templatisiert.

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedertyp Definition
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

Memberfunktionen

konstruiert einen neuen ostream_joiner
(öffentliche Elementfunktion)
(Destruktor)
(implizit deklariert)
zerstört einen ostream_joiner
(öffentliche Elementfunktion)
schreibt ein Objekt in die assoziierte Ausgabesequenz
(öffentliche Elementfunktion)
No-Op
(öffentliche Elementfunktion)
No-Op
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

erstellt ein ostream_joiner Objekt, wobei die Template-Typargumente aus den Funktionsargumenten abgeleitet werden
(Funktions-Template)

Beispiel

#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, ", "));
}

Ausgabe:

1, 2, 3, 4, 5

Siehe auch

Ausgabeiterator, der in std::basic_streambuf schreibt
(Klassentemplate)
Ausgabeiterator, der in std::basic_ostream schreibt
(Klassentemplate)
Eingabeiterator, der aus std::basic_istream liest
(Klassentemplate)