Share via


ostream_iterator-klasse

De klassesjabloon ostream_iterator beschrijft een uitvoer iterator-object dat opeenvolgende elementen naar de uitvoerstroom schrijft met de extractie .

Syntaxis

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

Parameterwaarden

Type
Het type object dat moet worden ingevoegd in de uitvoerstroom.

CharType
Het type dat het tekentype voor de . Dit argument is optioneel en de standaardwaarde is .

Traits
Het type dat het tekentype voor de . Dit argument is optioneel en de standaardwaarde is .*

De ostream_iterator-klasse moet voldoen aan de vereisten voor een uitvoer-iterator. Algoritmen kunnen rechtstreeks naar uitvoerstromen worden geschreven met behulp van een .

Constructeurs

Constructeur Beschrijving
ostream_iterator Hiermee maakt u een die is geïnitialiseerd en gescheiden om naar de uitvoerstroom te schrijven.

Typedefs

Typenaam Beschrijving
char_type Een type dat het tekentype van de .
ostream_type Een type dat voorziet in het stroomtype van de .
traits_type Een type dat voorziet in het type karaktereigenschappen van het type .

Bedieners

Operator Beschrijving
operator* Deductieoperator die wordt gebruikt voor het implementeren van de uitvoer-iteratorexpressie .
operator++ Een niet-functionele incrementele operator die een aan hetzelfde object retourneert dat is geadresseerd voordat de bewerking werd aangeroepen.
operator= Toewijzingsoperator die wordt gebruikt voor het implementeren van de uitvoer-iteratorexpressie voor het schrijven naar een uitvoerstroom.

Requirements

Rubriek:

Naamruimte:

ostream_iterator::char_type

Een type dat het tekentype van de iterator aangeeft.

typedef CharType char_type;

Opmerkingen

Het type is een synoniem voor de sjabloonparameter .

Voorbeeld

// 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*

Deductieoperator die wordt gebruikt voor het implementeren van de uitvoer-iteratorexpressie .

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

Retourwaarde

Een verwijzing naar de .

Opmerkingen

De vereisten voor een uitvoer-iterator waaraan moet worden voldaan, vereisen dat alleen de expressie geldig is en niets over de of de zelfstandigen zegt. De lidoperator in deze implementatie retourneert .

Voorbeeld

// 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++

Een niet-functionele incrementele operator die een aan hetzelfde object retourneert dat is geadresseerd voordat de bewerking werd aangeroepen.

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

Retourwaarde

Een verwijzing naar de .

Opmerkingen

Deze lidoperators retourneren beide .

Voorbeeld

// 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=

Toewijzingsoperator die wordt gebruikt voor het implementeren van de output_iterator-expressie voor het schrijven naar een uitvoerstroom.

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

Parameterwaarden

val
De waarde van het object van het type dat moet worden ingevoegd in de uitvoerstroom.

Retourwaarde

De operator voegt de uitvoerstroom in die is gekoppeld aan het object, gevolgd door het scheidingsteken dat is opgegeven in de (indien van toepassing) en retourneert vervolgens een verwijzing naar de .

Opmerkingen

De vereisten voor een uitvoer-iterator waaraan moet worden voldaan, vereisen dat alleen de expressie geldig is en niets over de operator of de operator= zelf zegt. Deze lidoperator retourneert .

Voorbeeld

// 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

Hiermee maakt u een die is geïnitialiseerd en gescheiden om naar de uitvoerstroom te schrijven.

ostream_iterator(ostream_type& _Ostr);

ostream_iterator(
    ostream_type& _Ostr,
    const CharType* _Delimiter);

Parameterwaarden

_Ostr
De uitvoerstroom van het type die moet worden ge curseerd.

_Delimiter
Het scheidingsteken dat wordt ingevoegd in de uitvoerstroom tussen waarden.

Opmerkingen

De eerste constructor initialiseert de uitvoerstroompointer met . De tekenreeksaanwijzer voor scheidingstekens wijst een lege tekenreeks aan.

De tweede constructor initialiseert de uitvoerstroomaanwijzer met en de tekenreeksaanwijzer met scheidingsteken met .

Voorbeeld

// 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

Een type dat voorziet in het stroomtype van de iterator.

typedef basic_ostream<CharType, Traits> ostream_type;

Opmerkingen

Het type is een synoniem voor , een stroomklasse van de iostream-hiërarchie waarmee objecten worden gedefinieerd die kunnen worden gebruikt voor schrijven.

Voorbeeld

Zie voor een voorbeeld van hoe u declareert en gebruikt .

ostream_iterator::traits_type

Een type dat voorziet in het type karaktereigenschappen van de iterator.

typedef Traits traits_type;

Opmerkingen

Het type is een synoniem voor de sjabloonparameter .

Voorbeeld

// 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

Zie ook

<iterator>
Thread Safety in de C++-standaardbibliotheek
Naslaginformatie over standaardbibliotheek voor C++