Megosztás a következőn keresztül:


osztály

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