Public Types | |
typedef std::input_iterator_tag | iterator_category |
typedef std::string | value_type |
typedef ptrdiff_t | difference_type |
typedef std::string * | pointer |
typedef std::string & | reference |
typedef dirstream | stream_type |
Public Member Functions | |
dirstream_iterator () | |
dirstream_iterator (dirstream &dstr) | |
const std::string & | operator * () const |
const std::string * | operator-> () const |
dirstream_iterator & | operator++ () |
dirstream_iterator | operator++ (int) |
Friends | |
bool | operator== (const dirstream_iterator &lhs, const dirstream_iterator &rhs) |
bool | operator!= (const dirstream_iterator &lhs, const dirstream_iterator &rhs) |
Dieser Iterator der Kategorie Input-Iterator ermöglicht z.B. die Verbindung von dirstream-Objekten mit den Algorithmen der Standardbibliothek.
dirstream str("."); std::copy(dirstream_iterator(str), dirstream_iterator(), ostream_iterator<string>(cout, "\n"));
dirstr::dirstream_iterator::dirstream_iterator | ( | ) | [inline] |
Der Standard-Ctor erstellt einen Ende-Iterator.
dirstr::dirstream_iterator::dirstream_iterator | ( | dirstream & | dstr | ) | [inline, explicit] |
Dieser Ctor verbindet den neuen Iterator mit dem Stream dstr und versucht dann einen ersten Eintrag zu lesen. Gelingt dies, kann der Iterator dereferenziert und damit der Wert extrahiert werden. Andernfalls wird der Iterator zu einem Ende-Iterator, der nicht dereferenziert werden darf.
const std::string& dirstr::dirstream_iterator::operator * | ( | ) | const [inline] |
Liefert den aktuellen Verzeichniseintrag.
const std::string* dirstr::dirstream_iterator::operator-> | ( | ) | const [inline] |
Liefert &**this;
dirstream_iterator& dirstr::dirstream_iterator::operator++ | ( | ) | [inline] |
Liest und speichert den nächsten Verzeichniseintrag, falls dies möglich ist.
dirstream_iterator dirstr::dirstream_iterator::operator++ | ( | int | ) | [inline] |
Erstellt eine Kopie des Iterator-Objekts, liest den nächsten Eintrag und liefert die Kopie zurück.
bool operator== | ( | const dirstream_iterator & | lhs, | |
const dirstream_iterator & | rhs | |||
) | [friend] |
Liefert true, falls lhs und rhs mit dem selben Stream verbunden sind oder aber beide Iteratoren Ende-Iteratoren sind.
bool operator!= | ( | const dirstream_iterator & | lhs, | |
const dirstream_iterator & | rhs | |||
) | [friend] |
Liefert !(lhs == rhs)
dirstream str("."); for(dirstream_iterator it(str), end; it != end; ++it) {...}