Namespaces
Variants

std:: ostream_iterator

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Definiert im Header <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 >
(bis C++17)
template < class T,

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

class ostream_iterator ;
(seit C++17)

std::ostream_iterator ist ein Single-Pass- LegacyOutputIterator , der sukzessive Objekte vom Typ T in das std::basic_ostream -Objekt schreibt, für das es konstruiert wurde, unter Verwendung von operator<< . Ein optionaler Trennzeichen-String wird nach jedem Schreibvorgang in den Ausgabestrom geschrieben. Der Schreibvorgang wird ausgeführt, wenn der Iterator (ob dereferenziert oder nicht) zugewiesen wird. Das Inkrementieren des std::ostream_iterator ist eine No-Op-Operation.

In einer typischen Implementierung sind die einzigen Datenelemente von std::ostream_iterator ein Zeiger auf den zugehörigen std::basic_ostream und ein Zeiger auf das erste Zeichen im Trennzeichen-String.

Beim Schreiben von Zeichen ist std::ostreambuf_iterator effizienter, da es den Aufwand vermeidet, das Sentry-Objekt einmal pro Zeichen zu konstruieren und zu destruieren.

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedstyp Definition
iterator_category std:: output_iterator_tag
value_type void
difference_type

void

(bis C++20)

std::ptrdiff_t

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

Die Member-Typen iterator_category , value_type , difference_type , pointer und reference müssen durch Vererbung von std:: iterator < std:: output_iterator_tag , void , void , void , void > erhalten werden.

(bis C++17)

Memberfunktionen

Konstruiert einen neuen ostream_iterator
(öffentliche Elementfunktion)
zerstört einen ostream_iterator
(öffentliche Elementfunktion)
schreibt ein Objekt in die assoziierte Ausgabesequenz
(öffentliche Elementfunktion)
No-Op
(öffentliche Elementfunktion)
No-Op
(öffentliche Elementfunktion)

Beispiel

#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';
}

Ausgabe:

0.11, 0.33, 0.66, 1.1,

Siehe auch

Ausgabe-Iterator, der in std::basic_streambuf schreibt
(Klassentemplate)
Eingabe-Iterator, der aus std::basic_istream liest
(Klassentemplate)
(library fundamentals TS v2)
ein Ausgabe-Iterator, der aufeinanderfolgende Elemente in einen Ausgabestrom schreibt und benachbarte Elemente mit einem Trennzeichen trennt
(Klassentemplate)