Namensräume
Varianten
Aktionen

std::ostreambuf_iterator

Von cppreference.com
< cpp‎ | iterator
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
Gemeinsame Algorithmus-Anforderungen
(C++20)
(C++20)
(C++20)
Dienstprogramme
(C++20)
Iterator-Adapter
Bereichszugriff
(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 in Header <iterator>
template< class CharT, class Traits = std::char_traits<CharT> >

class ostreambuf_iterator

    : public std::iterator<std::output_iterator_tag, void, void, void, void>
(bis C++17)
template< class CharT, class Traits = std::char_traits<CharT> >
class ostreambuf_iterator;
(seit C++17)

std::ostreambuf_iterator ist ein Einpass-LegacyOutputIterator, der aufeinanderfolgende Zeichen in das std::basic_streambuf-Objekt schreibt, für das er konstruiert wurde. Die eigentliche Schreiboperation wird durchgeführt, wenn der Iterator (egal ob dereferenziert oder nicht) zugewiesen wird. Das Inkrementieren des std::ostreambuf_iterator ist eine No-Op.

In einer typischen Implementierung sind die einzigen Datenmember von std::ostreambuf_iterator ein Zeiger auf den zugehörigen std::basic_streambuf und ein boolesches Flag, das angibt, ob die End-of-File-Bedingung erreicht wurde.

Inhalt

[bearbeiten] Member-Typen

Mitgliedertyp Definition
iterator_category std::output_iterator_tag
value_type void
difference_type

void

(bis C++20)

std::ptrdiff_t

(seit C++20)
Zeiger void
Referenz void
char_type CharT
traits_type Traits
streambuf_type std::basic_streambuf<CharT, Traits>
ostream_type std::basic_ostream<CharT, Traits>

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

(bis C++17)

[edit] Memberfunktionen

konstruiert einen neuen ostreambuf_iterator
(public member function) [edit]
(Destruktor)
(implizit deklariert)
destruiert einen ostreambuf_iterator
(public member function) [edit]
schreibt ein Zeichen in die zugeordnete Ausgabesequenz
(public member function) [edit]
no-op
(public member function) [edit]
no-op
(public member function) [edit]
prüft, ob die Ausgabe fehlgeschlagen ist
(public member function) [edit]

[edit] Beispiel

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    std::string s = "This is an example\n";
    std::copy(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout));
}

Ausgabe

This is an example

[edit] Siehe auch

Eingabe-Iterator, der aus std::basic_streambuf liest
(Klassenvorlage) [bearbeiten]
Ausgabe-Iterator, der in std::basic_ostream schreibt
(Klassenvorlage) [bearbeiten]