Třída

Šablona třídy popisuje výstupní iterátor objekt, který zapisuje po sobě jdoucí prvky znaků do výstupního datového proudu s extrakcí . Liší se od těch třídy, které mají znaky místo obecného typu u typu objektu, který se vkládá do výstupního datového proudu.

Syntaxe

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

Parametry

CharType
Typ, který představuje typ znaku pro ostreambuf_iterator. Tento argument je nepovinný a výchozí hodnota je .

Traits
Typ, který představuje typ znaku pro ostreambuf_iterator. Tento argument je nepovinný a výchozí hodnota je .

Poznámky

Třída ostreambuf_iterator musí splňovat požadavky na výstupní iterátor. Algoritmy lze zapisovat přímo do výstupních datových proudů pomocí . Třída poskytuje iterátor datového proudu na nízké úrovni, který umožňuje přístup k nezpracovanému (neformátovanému) proudu dat ve formě znaků a schopnost obejít ukládání do vyrovnávací paměti a překlady znaků spojené s iterátory datového proudu vysoké úrovně.

Konstruktory

Konstruktor Popis
ostreambuf_iterator Vytvoří inicializovaný objekt pro zápis znaků do výstupního datového proudu.

Typedefs

Název typu Popis
char_type Typ, který poskytuje typ znaku .
ostream_type Typ, který poskytuje typ datového proudu .
streambuf_type Typ, který poskytuje typ datového proudu .
traits_type Typ, který poskytuje typ znakových vlastností .

Členské funkce

Členová funkce Popis
failed Ověřuje selhání vložení do vyrovnávací paměti výstupního datového proudu.

Operátory

Operátor Popis
operator* Operátor dereferencing použitý k implementaci výstupního výrazu iterátoru .
operator++ Nefunkční inkrementační operátor, který vrací stejný objekt, který byl vyřešen před zavolání operace.
operator= Operátor vloží znak do přidružené vyrovnávací paměti datového proudu.

Požadavky

Záhlaví:

Obor názvů:

ostreambuf_iterator::char_type

Typ, který poskytuje typ znaku .

typedef CharType char_type;

Poznámky

Typ je synonymem pro parametr šablony .

Příklad

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

Ověřuje selhání vložení do vyrovnávací paměti výstupního datového proudu.

bool failed() const throw();

Návratová hodnota

pokud do vyrovnávací paměti výstupního datového proudu nedošlo dříve k chybě vložení; jinak .

Poznámky

Členová funkce vrátí , pokud některý z předchozích pokusů o vložení znaku do vyrovnávací paměti výstupního datového proudu nebyl úspěšný.

Příklad

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

Nonfunctional dereferencing operator used to implement the output iterator expression .

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

Návratová hodnota

Objekt iterátoru ostreambuf.

Poznámky

Tento operátor funguje pouze ve výrazu výstupního iterátoru pro výstupní znaky do vyrovnávací paměti datového proudu. Použije se na , vrátí iterátor; vrátí .

Příklad

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

Nefunkční operátor přírůstku, který vrací stejný znak, který byl vyřešen před zavolání operace.

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

Návratová hodnota

Odkaz na znak původně adresovaný nebo na objekt definovaný implementací, který je konvertibilní na .

Poznámky

Operátor se používá k implementaci výstupního výrazu iterátoru .

Příklad

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

Operátor vloží znak do přidružené vyrovnávací paměti datového proudu.

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

Parametry

_Char
Znak, který se má vložit do vyrovnávací paměti datového proudu.

Návratová hodnota

Odkaz na znak vložený do vyrovnávací paměti datového proudu.

Poznámky

Operátor přiřazení použitý k implementaci výrazu výstupního iterátoru pro zápis do výstupního datového proudu.

Příklad

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

Vytvoří inicializovaný objekt pro zápis znaků do výstupního datového proudu.

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

Parametry

strbuf
Výstupní objekt streambuf použitý k inicializaci výstupního ukazatele vyrovnávací paměti datového proudu.

Ostr
Výstupní objekt streamu použitý k inicializaci výstupního ukazatele vyrovnávací paměti datového proudu.

Poznámky

První konstruktor inicializuje výstupní stream-buffer ukazatel s .

Druhý konstruktor inicializuje výstupní ukazatel vyrovnávací paměti datového proudu pomocí *. Uložený ukazatel nesmí být nulovým ukazatelem.

Příklad

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

Typ, který poskytuje typ datového proudu .

typedef basicOstream<CharType, Traits> ostream_type;

Poznámky

Typ je synonymem pro

Příklad

Podívejte se na příklad, jak deklarovat a používat .

ostreambuf_iterator::streambuf_type

Typ, který poskytuje typ datového proudu .

typedef basic_streambuf<CharType, Traits> streambuf_type;

Poznámky

Typ je synonymem pro , třída streamu pro vstupně-výstupní vyrovnávací paměti, která se stane , když se specializují na typ znaku .

Příklad

Podívejte se na příklad, jak deklarovat a používat .

ostreambuf_iterator::traits_type

Typ, který poskytuje typ znakových vlastností .

typedef Traits traits_type;

Poznámky

Typ je synonymem pro parametr šablony .

Příklad

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

Viz také

iterátor
Bezpečný přístup z více vláken ve standardní knihovně C++
Standardní knihovna C++ – referenční dokumentace