Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Klassenvorlage ostream_iterator beschreibt ein Ausgabe iterator-Objekt, das aufeinander folgende Elemente in den Ausgabedatenstrom mit der Extraktion operator <<
schreibt.
Syntax
template <class Type class CharType = char class Traits = char_traits <CharType>>
class ostream_iterator
Parameter
Typ
Der Typ des in den Ausgabestream einzufügenden Objekts.
CharType
Der Typ, der den Zeichentyp für ostream_iterator
darstellt. Dieses Argument ist optional, und der Standardwert ist char
.
Merkmale
Der Typ, der den Zeichentyp für ostream_iterator
darstellt. Dieses Argument ist optional, und der Standardwert ist char_traits
<CharType>.
Die ostream_iterator-Klasse muss den Anforderungen für einen Ausgabeiterator entsprechen. Algorithmen können mit ostream_iterator
direkt in Ausgabestreams geschrieben werden.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
ostream_iterator | Erstellt einen ostream_iterator , der initialisiert und zum Schreiben in den Ausgabestream begrenzt wird. |
TypeDefs
Typname | Beschreibung |
---|---|
char_type | Ein Typ, der für den Zeichentyp von ostream_iterator bereitgestellt wird. |
ostream_type | Ein Typ, der für den Streamtyp von ostream_iterator bereitgestellt wird. |
traits_type | Ein Typ, der für den Merkmaltyp von ostream_iterator bereitgestellt wird. |
Operatoren
Operator | Beschreibung |
---|---|
operator* | Der Dereferenzierungsoperator, der zum Implementieren des Ausgabeiteratorausdrucks *i = x verwendet wird. |
operator++ | Ein nicht funktionaler Inkrementoperator, der einen ostream_iterator zum gleichen Objekt zurückgibt, das er adressiert hat, bevor der Vorgang aufgerufen wurde. |
operator= | Ein Zuweisungsoperator, der zum Implementieren des Ausgabeiteratorausdrucks *i = x zum Schreiben in einen Ausgabestream verwendet wird. |
Anforderungen
Header:<iterator>
Namespace: std
ostream_iterator::char_type
Ein Typ, der für den Zeichentyp des Iterators bereitgestellt wird.
typedef CharType char_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter CharType
dar.
Beispiel
// ostream_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to the output stream\n"
<< "by intOut are:" << endl;
*intOut = 10;
*intOut = 20;
*intOut = 30;
}
/* Output:
The integers written to the output stream
by intOut are:
10
20
30
*/
ostream_iterator::operator*
Dereferencing-Operator zum Implementieren des Ausgabe iteratorausdrucks * ii = x.
ostream_iterator<Type, CharType, Traits>& operator*();
Rückgabewert
Ein Verweis auf ostream_iterator
.
Hinweise
Die Anforderungen für einen Ausgabe-Iterator, den die ostream_iterator
erfüllen müssen, erfordern nur den Ausdruck * ii = t gültig und sagt nichts über das operator
oder das operator=
allein. Der Memberoperator in dieser Implementierung gibt zurück *this
.
Beispiel
// ostream_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::operator++
Ein nicht funktionaler Inkrementoperator, der einen ostream_iterator
zum gleichen Objekt zurückgibt, das er adressiert hat, bevor der Vorgang aufgerufen wurde.
ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);
Rückgabewert
Ein Verweis auf ostream_iterator
.
Hinweise
Diese Memberoperatoren geben beide zurück *this
.
Beispiel
// ostream_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::operator=
Ein Zuweisungsoperator, der zum Implementieren des Ausgabeiteratorausdrucks *i
= x
zum Schreiben in einen Ausgabestream verwendet wird.
ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);
Parameter
val
Der Wert des Objekts des Type
-Typs, der in den Ausgabestream einzufügen ist.
Rückgabewert
Der Operator fügt "val " in den Ausgabedatenstrom ein, der dem Objekt zugeordnet ist, gefolgt von dem im ostream_iterator-Konstruktor angegebenen Trennzeichen (falls vorhanden), und gibt dann einen Verweis auf das ostream_iterator
Objekt zurück.
Hinweise
Die Anforderungen für einen Ausgabeiterator, der ostream_iterator
erfüllen muss, benötigen nur den gültigen Ausdruck * ii
= t
, und sagen nichts über den operator oder den operator= selbst. Dieser Memberoperator gibt *this
zurück.
Beispiel
// ostream_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::ostream_iterator
Erstellt einen ostream_iterator
, der initialisiert und zum Schreiben in den Ausgabestream begrenzt wird.
ostream_iterator(
ostream_type& _Ostr);
ostream_iterator(
ostream_type& _Ostr,
const CharType* _Delimiter);
Parameter
_Ostr
Der Ausgabestream vom Typ ostream_iterator:: ostream_type, der eine Schleife durchlaufen wird.
_Trennzeichen
Das Trennzeichen, das in den Ausgabestream zwischen Werten eingefügt wird.
Hinweise
Der erste Konstruktor initialisiert den Ausgabestreamzeiger mit &_Ostr
. Der Zeiger für Zeichenfolgentrennzeichen kennzeichnet eine leere Zeichenfolge.
Der zweite Konstruktor initialisiert den Ausgabedatenstromzeiger mit &_Ostr
und dem Trennzeichen-Zeichenfolgenzeiger mit _Delimiter.
Beispiel
// ostream_iterator_ostream_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
ostream_iterator<int> intOut ( cout , "\n" );
*intOut = 10;
intOut++;
*intOut = 20;
intOut++;
int i;
vector<int> vec;
for ( i = 1 ; i < 7 ; ++i )
{
vec.push_back ( i );
}
// Write elements to standard output stream
cout << "Elements output without delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout ) );
cout << endl;
// Write elements with delimiter " : " to output stream
cout << "Elements output with delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout, " : " ) );
cout << endl;
}
/* Output:
10
20
Elements output without delimiter: 123456
Elements output with delimiter: 1 : 2 : 3 : 4 : 5 : 6 :
*/
ostream_iterator::ostream_type
Ein Typ, der für den Streamtyp des Iteraotrs bereitgestellt wird.
typedef basic_ostream<CharType, Traits> ostream_type;
Hinweise
Der Typ ist ein Synonym für basic_ostreamCharType
<, Traits
>eine Streamklasse der Iostream-Hierarchie, die Objekte definiert, die zum Schreiben verwendet werden können.
Beispiel
Unter ostream_iterator finden Sie ein Beispiel für das Deklarieren und Verwenden von ostream_type
.
ostream_iterator::traits_type
Ein Typ, der für den Zeichenmerkmaltyp des Iterators bereitgestellt wird.
typedef Traits traits_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Traits
dar.
Beispiel
// ostream_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// The following not OK, but are just the default values:
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to output stream\n"
<< "by intOut are:" << endl;
*intOut = 1;
*intOut = 10;
*intOut = 100;
}
/* Output:
The integers written to output stream
by intOut are:
1
10
100
*/
Siehe auch
<iterator>
Threadsicherheit in der C++-Standardbibliothek
C++-Standardbibliotheksreferenz