std:: ostream_iterator
|
Definiert im Header
<iterator>
|
||
|
template
<
class
T,
class
CharT
=
char
,
|
(bis C++17) | |
|
template
<
class
T,
class
CharT
=
char
,
|
(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
|
|
||||
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) |