Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az osztálysablon egy kimeneti iterátorobjektumot ír le, amely egymást követő karakterelemeket ír a kimeneti adatfolyamba a kinyeréssel . Az s-ek eltérnek az osztályétól, mivel a kimeneti adatfolyamba beszúrt objektumtípusnál nem egy általános típus, hanem karakterek vannak.
Szemantika
template <class CharType = char, class Traits = char_traits <CharType>>
Paraméterek
CharType
Az a típus, amely a ostreambuf_iterator karaktertípusát jelöli. Ez az argumentum nem kötelező, az alapértelmezett érték pedig a következő .
Traits
Az a típus, amely a ostreambuf_iterator karaktertípusát jelöli. Ez az argumentum nem kötelező, az alapértelmezett érték pedig a következő .
Megjegyzések
A ostreambuf_iterator osztálynak meg kell felelnie egy kimeneti iterátor követelményeinek. Az algoritmusok közvetlenül a kimeneti streamekbe írhatók egy . Az osztály alacsony szintű stream iterátort biztosít, amely lehetővé teszi a nyers (formázatlan) I/O-streamhez való hozzáférést karakterek formájában, valamint a magas szintű stream iterátorokkal társított pufferelési és karakterfordítások megkerülésének lehetőségét.
Konstruktorok
| Constructor | Leírás |
|---|---|
ostreambuf_iterator |
Olyan szerkezetet hoz létre, amely inicializálva ír karaktereket a kimeneti adatfolyamba. |
Typedefs
| Típus neve | Leírás |
|---|---|
char_type |
Olyan típus, amely a karaktertípust adja meg . |
ostream_type |
A streamtípusát biztosító típus. |
streambuf_type |
A streamtípusát biztosító típus. |
traits_type |
Olyan típus, amely a karaktertulajdonságok típusát adja meg. |
Tagfüggvények
| Tagfüggvény | Leírás |
|---|---|
failed |
A kimeneti streampufferbe történő beszúrás sikertelenségének vizsgálata. |
Működtetők
| Operátor | Leírás |
|---|---|
operator* |
A kimeneti iterátorkifejezés implementálásához használt dereferens operátor. |
operator++ |
Nem funkciós növekményes operátor, amely a művelet meghívása előtt ugyanahhoz az objektumhoz ad vissza egy értéket. |
operator= |
Az operátor beszúr egy karaktert a társított streampufferbe. |
Követelmények
Fejléc:
Névtér:
ostreambuf_iterator::char_type
Olyan típus, amely a karaktertípust adja meg .
typedef CharType char_type;
Megjegyzések
A típus a sablonparaméter szinonimája.
Example
// 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
A kimeneti streampufferbe történő beszúrás sikertelenségének vizsgálata.
bool failed() const throw();
Visszaadott érték
ha korábban nem történt beszúrás a kimeneti streampufferbe; egyéb esetben .
Megjegyzések
A tagfüggvény akkor ad vissza, ha a kimeneti stream pufferébe korábban megkísérelt karakter beszúrása sikertelen volt.
Example
// 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*
A kimeneti iterátorkifejezés implementálásához használt nem funkciós dereferens operátor.
ostreambuf_iterator<CharType, Traits>& operator*();
Visszaadott érték
Az ostreambuf iterator objektum.
Megjegyzések
Ez az operátor csak a kimeneti iterátorkifejezésben működik a kimeneti karakterek streampufferbe történő kimeneti karaktereihez. Egy adottra alkalmazva visszaadja az iterátort; visszaadja .
Example
// 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++
Nem funkcionális növekményes operátor, amely a művelet meghívása előtt megadott karakterhez ad vissza egy értéket.
ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);
Visszaadott érték
Hivatkozás az eredetileg megcímzett karakterre vagy egy implementáció által definiált objektumra , amely átalakítható.
Megjegyzések
Az operátor a kimeneti iterátorkifejezés implementálásához használható.
Example
// 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=
Az operátor beszúr egy karaktert a társított streampufferbe.
ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);
Paraméterek
_Char
A streampufferbe beszúrandó karakter.
Visszaadott érték
Hivatkozás a streampufferbe beszúrt karakterre.
Megjegyzések
A kimeneti iterátor kifejezés implementálásához használt hozzárendelési operátor a kimeneti streambe való íráshoz.
Example
// 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
Olyan szerkezetet hoz létre, amely inicializálva ír karaktereket a kimeneti adatfolyamba.
ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();
Paraméterek
strbuf
A kimeneti stream-puffer mutató inicializálásához használt kimeneti streambuf objektum.
Ostr
A kimeneti streampuffer mutatójának inicializálásához használt kimeneti streamobjektum.
Megjegyzések
Az első konstruktor inicializálja a kimeneti stream-puffer mutatót a következővel : .
A második konstruktor inicializálja a kimeneti stream-puffer mutatót *-val. A tárolt mutató nem lehet null mutató.
Example
// 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
A streamtípusát biztosító típus.
typedef basicOstream<CharType, Traits> ostream_type;
Megjegyzések
A típus szinonimája a következőnek:
Example
Tekintse meg a deklarálandó és használható példákat.
ostreambuf_iterator::streambuf_type
A streamtípusát biztosító típus.
typedef basic_streambuf<CharType, Traits> streambuf_type;
Megjegyzések
A típus az I/O-pufferek streamosztályának szinonimája, amely a karaktertípusra specializáltá válik.
Example
Tekintse meg a deklarálandó és használható példákat.
ostreambuf_iterator::traits_type
Olyan típus, amely a karaktertulajdonságok típusát adja meg.
typedef Traits traits_type;
Megjegyzések
A típus a sablonparaméter szinonimája.
Example
// 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.
Lásd még
iterátor
Szálbiztonság a C++ standard kódtárban
C++ standard kódtár referenciája