Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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++