Dela via


ostream_iterator-klass

Klassmallen ostream_iterator beskriver ett iteratorobjekt för utdata som skriver efterföljande element till utdataströmmen med extraheringen .

Syntax

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

Parameters

Type
Vilken typ av objekt som ska infogas i utdataströmmen.

CharType
Den typ som representerar teckentypen för . Det här argumentet är valfritt och standardvärdet är .

Traits
Den typ som representerar teckentypen för . Det här argumentet är valfritt och standardvärdet är .*

Klassen ostream_iterator måste uppfylla kraven för en utdata-iterator. Algoritmer kan skrivas direkt till utdataströmmar med hjälp av en .

Konstruktörer

Constructor Beskrivning
ostream_iterator Konstruerar en som initieras och avgränsas för att skriva till utdataströmmen.

Typedefs

Typnamn Beskrivning
char_type En typ som tillhandahåller teckentypen för .
ostream_type En typ som tillhandahåller dataströmtypen för .
traits_type En typ som tillhandahåller teckenegenskapernas typ av .

Operatörer

Operatör Beskrivning
operator* Dereferencing-operatorn som används för att implementera iteratoruttrycket för utdata .
operator++ En icke-funktionell inkrementsoperator som returnerar ett till samma objekt som det adresserade innan åtgärden anropades.
operator= Tilldelningsoperator som används för att implementera iteratoruttrycket för utdata för att skriva till en utdataström.

Requirements

rubrik:

Namnområde:

ostream_iterator::char_type

En typ som tillhandahåller iteratorns teckentyp.

typedef CharType char_type;

Anmärkningar

Typen är en synonym för mallparametern .

Exempel

// 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-operatorn som används för att implementera iteratoruttrycket för utdata .

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

Returvärde

En referens till .

Anmärkningar

Kraven för en utdata iterator som måste uppfylla kräver endast uttrycket vara giltigt och säger ingenting om eller på egen hand. Medlemsoperatorn i den här implementeringen returnerar .

Exempel

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

En icke-funktionell inkrementsoperator som returnerar ett till samma objekt som det adresserade innan åtgärden anropades.

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

Returvärde

En referens till .

Anmärkningar

Dessa medlemsoperatorer returnerar båda .

Exempel

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

Tilldelningsoperator som används för att implementera output_iterator-uttrycket för att skriva till en utdataström.

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

Parameters

val
Värdet för det objekt av typen som ska infogas i utdataströmmen.

Returvärde

Operatorn infogar i utdataströmmen som är associerad med objektet, följt av avgränsare som anges i (om någon) och returnerar sedan en referens till .

Anmärkningar

Kraven för en utdata iterator som måste uppfylla kräver endast uttrycket vara giltigt och säger ingenting om operatorn eller operatorn = på egen hand. Den här medlemsoperatorn returnerar .

Exempel

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

Konstruerar en som initieras och avgränsas för att skriva till utdataströmmen.

ostream_iterator(ostream_type& _Ostr);

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

Parameters

_Ostr
Utdataströmmen av typen som ska itereras över.

_Delimiter
Avgränsare som infogas i utdataströmmen mellan värden.

Anmärkningar

Den första konstruktorn initierar utdataströmpekaren med . Avgränsarens strängpekare anger en tom sträng.

Den andra konstruktorn initierar utdataströmpekaren med och avgränsarens strängpekare med .

Exempel

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

En typ som tillhandahåller dataströmtypen för iteratorn.

typedef basic_ostream<CharType, Traits> ostream_type;

Anmärkningar

Typen är synonym för , en strömklass i iostream-hierarkin som definierar objekt som kan användas för skrivning.

Exempel

Se ett exempel på hur du deklarerar och använder .

ostream_iterator::traits_type

En typ som tillhandahåller iteratorns karaktärsdragstyp.

typedef Traits traits_type;

Anmärkningar

Typen är en synonym för mallparametern .

Exempel

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

Se även

<iterator>
Trådsäkerhet i C++-standardbiblioteket
Referens för C++-standardbibliotek