std::ostream_iterator
| Definiert in 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 aufeinanderfolgende Objekte des Typs T in das std::basic_ostream-Objekt schreibt, für das er konstruiert wurde, unter Verwendung von operator<<. Optionaler Trennzeichen-String wird nach jedem Schreibvorgang in den Ausgabestrom geschrieben. Der Schreibvorgang wird ausgeführt, wenn dem Iterator (unabhängig davon, ob er dereferenziert wird oder nicht) ein Wert zugewiesen wird. Das Inkrementieren des std::ostream_iterator ist ein Nullvorgang.
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 des Trennzeichen-Strings.
Beim Schreiben von Zeichen ist std::ostreambuf_iterator effizienter, da es den Overhead der Erstellung und Zerstörung des Sentry-Objekts einmal pro Zeichen vermeidet.
Mitgliedertypen
| Mitgliedstyp | Definition | ||||
iterator_category
|
std:: output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
char_type
|
CharT
|
||||
traits_type
|
Traits
|
||||
ostream_type
|
std:: basic_ostream < CharT, Traits > |
|
Die Member-Typen
|
(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) |