Freigeben über


ostream_iterator-Klasse

Die Klassenvorlage ostream_iterator beschreibt ein Ausgabe iterator-Objekt, das aufeinander folgende Elemente in den Ausgabedatenstrom mit der Extraktion schreibt.

Syntax

template <class Type, class CharType = char, class Traits = char_traits <CharType>>
class ostream_iterator

Parameter

Type
Der Typ des in den Ausgabestream einzufügenden Objekts.

CharType
Der Typ, der den Zeichentyp für darstellt. Dieses Argument ist optional, und der Standardwert ist .

Traits
Der Typ, der den Zeichentyp für darstellt. Dieses Argument ist optional und der Standardwert ist .*

Die ostream_iterator-Klasse muss den Anforderungen für einen Ausgabeiterator entsprechen. Algorithmen können mit direkt in Ausgabestreams geschrieben werden.

Konstruktoren

Konstruktor Beschreibung
ostream_iterator Erstellt einen , der initialisiert und zum Schreiben in den Ausgabestream begrenzt wird.

TypeDefs

Typname Beschreibung
char_type Ein Typ, der für den Zeichentyp von bereitgestellt wird.
ostream_type Ein Typ, der für den Streamtyp von bereitgestellt wird.
traits_type Ein Typ, der für den Merkmaltyp von bereitgestellt wird.

Operatoren

Operator Beschreibung
operator* Dereferencing-Operator, der zum Implementieren des Ausgabe iteratorausdrucks verwendet wird.
operator++ Ein nicht funktionaler Inkrementoperator, der einen zum gleichen Objekt zurückgibt, das er adressiert hat, bevor der Vorgang aufgerufen wurde.
operator= Zuordnungsoperator zum Implementieren des Ausgabe iteratorausdrucks zum Schreiben in einen Ausgabedatenstrom.

Anforderungen

Kopfball:

Namespace:

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 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;
}
The integers written to the output stream
by intOut are:
10
20
30

ostream_iterator::operator*

Dereferencing-Operator, der zum Implementieren des Ausgabe iteratorausdrucks verwendet wird.

ostream_iterator<Type, CharType, Traits>& operator*();

Rückgabewert

Ein Verweis auf .

Hinweise

Die Anforderungen für einen Ausgabe-Iterator, der erfüllt werden muss, erfordern nur den Ausdruck gültig und gibt nichts über das oder das allein. Der Memberoperator in dieser Implementierung gibt zurück .

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;
}
Elements written to output stream:
10
20
30

ostream_iterator::operator++

Ein nicht funktionaler Inkrementoperator, der einen 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 .

Hinweise

Diese Memberoperatoren geben beide zurück .

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;
}
Elements written to output stream:
10
20
30

ostream_iterator::operator=

Der Zuordnungsoperator, der zum Implementieren des output_iterator Ausdrucks zum Schreiben in einen Ausgabedatenstrom verwendet wird.

ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);

Parameter

val
Der Wert des Objekts des -Typs, der in den Ausgabestream einzufügen ist.

Rückgabewert

Der Operator fügt in den Ausgabedatenstrom ein, der dem Objekt zugeordnet ist, gefolgt von dem in der (falls vorhanden) angegebenen Trennzeichen und gibt dann einen Verweis auf das Objekt zurück.

Hinweise

Die Anforderungen für einen Ausgabe-Iterator, den der Ausdruck erfüllen muss, müssen nur gültig sein und nichts über den Operator oder den Operator= allein sagen. Dieser Memberoperator gibt 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;
}
Elements written to output stream:
10
20
30

ostream_iterator::ostream_iterator

Erstellt einen , 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 Ausgabedatenstrom des Typs , der durchlaufen werden soll.

_Delimiter
Das Trennzeichen, das in den Ausgabestream zwischen Werten eingefügt wird.

Hinweise

Der erste Konstruktor initialisiert den Ausgabestreamzeiger mit . Der Zeiger für Zeichenfolgentrennzeichen kennzeichnet eine leere Zeichenfolge.

Der zweite Konstruktor initialisiert den Ausgabedatenstromzeiger mit und dem Trennzeichen-Zeichenfolgenzeiger mit .

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;
}
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 , eine Streamklasse der Iostream-Hierarchie, die Objekte definiert, die zum Schreiben verwendet werden können.

Beispiel

Ein Beispiel zum Deklarieren und Verwenden finden Sie unter .

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 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;
}
The integers written to output stream
by intOut are:
1
10
100

Siehe auch

<iterator>
Threadsicherheit in der C++-Standardbibliothek
C++-Standardbibliotheksreferenz