Delen via


klas

De klassesjabloon beschrijft een uitvoer iterator-object dat opeenvolgende tekenelementen naar de uitvoerstroom schrijft met de extractie . De s verschillen van die van de klasse met tekens in plaats van een algemeen type bij het type object dat wordt ingevoegd in de uitvoerstroom.

Syntaxis

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

Parameterwaarden

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

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

Opmerkingen

De klasse ostreambuf_iterator moet voldoen aan de vereisten voor een uitvoer-iterator. Algoritmen kunnen rechtstreeks naar uitvoerstromen worden geschreven met behulp van een . De klasse biedt een stream-iterator op laag niveau die toegang biedt tot de onbewerkte (niet-opgemaakte) I/O-stroom in de vorm van tekens en de mogelijkheid om de buffer- en tekenomvangingen te omzeilen die zijn gekoppeld aan de stream-iterators op hoog niveau.

Constructeurs

Constructeur Beschrijving
ostreambuf_iterator Hiermee maakt u een teken dat is geïnitialiseerd om tekens 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 .
streambuf_type Een type dat voorziet in het stroomtype van de .
traits_type Een type dat voorziet in het type karaktereigenschappen van het type .

Functies voor leden

Lid, functie Beschrijving
failed Hiermee wordt getest of een invoeging in de uitvoerstroombuffer is mislukt.

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= De operator voegt een teken in de bijbehorende stroombuffer in.

Requirements

Rubriek:

Naamruimte:

ostreambuf_iterator::char_type

Een type dat het tekentype van de .

typedef CharType char_type;

Opmerkingen

Het type is een synoniem voor de sjabloonparameter .

Voorbeeld

// ostreambuf_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
   *charOutBuf = 'O';
   charOutBuf++;
   *charOutBuf = 'U';
   charOutBuf++;
   *charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
OUT.

ostreambuf_iterator::failed

Hiermee wordt getest of een invoeging in de uitvoerstroombuffer is mislukt.

bool failed() const throw();

Retourwaarde

als er geen invoeging in de uitvoerstroombuffer eerder is mislukt; anders .

Opmerkingen

De lidfunctie retourneert of een eerdere poging om een teken in te voegen in de uitvoerstroombuffer mislukt.

Voorbeeld

// ostreambuf_iterator_failed.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

   *charOut = 'a';
   charOut ++;
   *charOut  = 'b';
   charOut ++;
   *charOut = 'c';
   cout << " are characters output individually." << endl;

   bool b1 = charOut.failed ( );
   if (b1)
       cout << "At least one insertion failed." << endl;
   else
       cout << "No insertions failed." << endl;
}
abc are characters output individually.
No insertions failed.

ostreambuf_iterator::operator*

Een niet-functionele deferencing-operator die wordt gebruikt om de uitvoer-iteratorexpressie te implementeren.

ostreambuf_iterator<CharType, Traits>& operator*();

Retourwaarde

Het ostreambuf-iteratorobject.

Opmerkingen

Deze operator werkt alleen in de uitvoer-iterator-expressie voor uitvoertekens om een buffer te streamen. Toegepast op een , retourneert de iterator; retourneert .

Voorbeeld

// ostreambuf_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main()
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;   // no effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator++

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

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

Retourwaarde

Een verwijzing naar het teken dat oorspronkelijk is geadresseerd of naar een door de implementatie gedefinieerd object dat converteerbaar is naar .

Opmerkingen

De operator wordt gebruikt om de uitvoer-iteratorexpressie te implementeren.

Voorbeeld

// ostreambuf_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator=

De operator voegt een teken in de bijbehorende stroombuffer in.

ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);

Parameterwaarden

_Char
Het teken dat moet worden ingevoegd in de stroombuffer.

Retourwaarde

Een verwijzing naar het teken dat in de stroombuffer is ingevoegd.

Opmerkingen

Toewijzingsoperator die wordt gebruikt voor het implementeren van de uitvoer-iteratorexpressie voor het schrijven naar een uitvoerstroom.

Voorbeeld

// ostreambuf_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
   *charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
   *charOutBuf = 'U';
   *charOutBuf = 'T';
}
Elements written to output stream:
OUT

ostreambuf_iterator::ostreambuf_iterator

Hiermee maakt u een teken dat is geïnitialiseerd om tekens naar de uitvoerstroom te schrijven.

ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();

Parameterwaarden

strbuf
Het uitvoerstreambuf-object dat wordt gebruikt voor het initialiseren van de uitvoerstroombufferpointer.

Ostr
Het uitvoerstroomobject dat wordt gebruikt voor het initialiseren van de uitvoerstroombufferpointer.

Opmerkingen

De eerste constructor initialiseert de uitvoerstroombufferpointer met .

De tweede constructor initialiseert de uitvoerstroombufferpointer met *. De opgeslagen aanwijzer mag geen null-aanwijzer zijn.

Voorbeeld

// ostreambuf_iteratorOstreambuf_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main()
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

   *charOut = 'O';
   charOut ++;
   *charOut  = 'U';
   charOut ++;
   *charOut = 'T';
   cout << " are characters output individually." << endl;

   ostreambuf_iterator<char> strOut ( cout );
   string str = "These characters are being written to the output stream.\n ";
   copy ( str.begin ( ), str. end ( ), strOut );
}
OUT are characters output individually.
These characters are being written to the output stream.

ostreambuf_iterator::ostream_type

Een type dat voorziet in het stroomtype van de .

typedef basicOstream<CharType, Traits> ostream_type;

Opmerkingen

Het type is een synoniem voor

Voorbeeld

Zie voor een voorbeeld van hoe u declareert en gebruikt .

ostreambuf_iterator::streambuf_type

Een type dat voorziet in het stroomtype van de .

typedef basic_streambuf<CharType, Traits> streambuf_type;

Opmerkingen

Het type is een synoniem voor , een streamklasse voor I/O-buffers die wordt wanneer gespecialiseerd in tekentype .

Voorbeeld

Zie voor een voorbeeld van hoe u declareert en gebruikt .

ostreambuf_iterator::traits_type

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

typedef Traits traits_type;

Opmerkingen

Het type is een synoniem voor de sjabloonparameter .

Voorbeeld

// ostreambuf_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
   *charOutBuf = 'O';
   charOutBuf++;
   *charOutBuf = 'U';
   charOutBuf++;
   *charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
The characters written to the output stream
by charOutBuf are: OUT.

Zie ook

Iterator
Thread Safety in de C++-standaardbibliotheek
Naslaginformatie over standaardbibliotheek voor C++