std::experimental:: ostream_joiner
|
Definiert im Header
<experimental/iterator>
|
||
|
template
<
class
DelimT,
|
(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) |