Bagikan melalui


Kelas ostreambuf_iterator

Templat kelas ostreambuf_iterator menjelaskan objek iterator output yang menulis elemen karakter berturut-turut ke aliran output dengan operator>> ekstraksi. S ostreambuf_iteratorberbeda dari kelas ostream_iterator dalam memiliki karakter alih-alih jenis generik pada jenis objek yang dimasukkan ke dalam aliran output.

Sintaks

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

Parameter

CharType
Jenis yang mewakili jenis karakter untuk ostreambuf_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char.

Sifat
Jenis yang mewakili jenis karakter untuk ostreambuf_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char_traits<CharType>.

Keterangan

Kelas ostreambuf_iterator harus memenuhi persyaratan untuk iterator output. Algoritma dapat ditulis langsung ke aliran output menggunakan ostreambuf_iterator. Kelas ini menyediakan iterator aliran tingkat rendah yang memungkinkan akses ke aliran I/O mentah (tidak diformat) dalam bentuk karakter dan kemampuan untuk melewati buffering dan terjemahan karakter yang terkait dengan iterator aliran tingkat tinggi.

Konstruktor

Konstruktor Deskripsi
ostreambuf_iterator Membuat yang ostreambuf_iterator diinisialisasi untuk menulis karakter ke aliran output.

Typedefs

Nama jenis Deskripsi
char_type Jenis yang menyediakan jenis karakter .ostreambuf_iterator
ostream_type Jenis yang menyediakan jenis aliran .ostream_iterator
streambuf_type Jenis yang menyediakan jenis aliran .ostreambuf_iterator
traits_type Jenis yang menyediakan jenis sifat karakter dari ostream_iterator.

Fungsi anggota

Fungsi anggota Deskripsi
gagal Pengujian untuk kegagalan penyisipan ke dalam buffer aliran output.

Operators

Operator Deskripsi
Operator* Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x.
operator++ Operator kenaikan nonfungsi yang mengembalikan ostreambuf_iterator ke objek yang sama yang ditanganinya sebelum operasi dipanggil.
operator= Operator menyisipkan karakter ke dalam buffer aliran terkait.

Persyaratan

Header:<iterator>

Namespace: std

ostreambuf_iterator::char_type

Jenis yang menyediakan jenis karakter .ostreambuf_iterator

typedef CharType char_type;

Keterangan

Jenisnya adalah sinonim untuk parameter CharTypetemplat .

Contoh

// 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;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/

ostreambuf_iterator::gagal

Pengujian untuk kegagalan penyisipan ke dalam buffer aliran output.

bool failed() const throw();

Tampilkan Nilai

true jika tidak ada penyisipan ke dalam buffer aliran output yang gagal sebelumnya; jika tidak false.

Keterangan

Fungsi anggota mengembalikan true jika, dalam penggunaan anggota operator=sebelumnya , panggilan ke subf_->sputc mengembalikan eof.

Contoh

// 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;
}
/* Output:
abc are characters output individually.
No insertions failed.
*/

ostreambuf_iterator::operator*

Operator dereferensi nonfungsi yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x.

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

Tampilkan Nilai

Objek iterator ostreambuf.

Keterangan

Operator ini hanya berfungsi dalam ekspresi iterator output * i = x ke karakter output untuk mengalirkan buffer. Diterapkan ke iterator ostreambuf, ia mengembalikan iterator; *iter mengembalikan iter,

Contoh

// 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';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::operator++

Operator kenaikan nonfungsi yang mengembalikan iterator ostream ke karakter yang sama dengan yang ditangani sebelum operasi dipanggil.

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

Tampilkan Nilai

Referensi ke karakter yang awalnya ditujukan atau ke objek yang ditentukan implementasi yang dapat dikonversi ke ostreambuf_iterator<CharType, Traits.>

Keterangan

Operator digunakan untuk mengimplementasikan ekspresi iterator output * i = x.

Contoh

// 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';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::operator=

Operator menyisipkan karakter ke dalam buffer aliran terkait.

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

Parameter

_Char
Karakter yang akan disisipkan ke dalam buffer aliran.

Tampilkan Nilai

Referensi ke karakter yang disisipkan ke dalam buffer aliran.

Keterangan

Operator penugasan yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x untuk menulis ke aliran output.

Contoh

// 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';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::ostreambuf_iterator

Membuat yang ostreambuf_iterator diinisialisasi untuk menulis karakter ke aliran output.

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

Parameter

strbuf
Objek streambuf output yang digunakan untuk menginisialisasi pointer stream-buffer output.

Ostr
Objek aliran output yang digunakan untuk menginisialisasi pointer stream-buffer output.

Keterangan

Konstruktor pertama menginisialisasi pointer stream-buffer output dengan strbuf.

Konstruktor kedua menginisialisasi pointer stream-buffer output dengan Ostr. rdbuf. Penunjuk tersimpan tidak boleh berupa penunjuk null.

Contoh

// 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 );
}
/* Output:
OUT are characters output individually.
These characters are being written to the output stream.
*/

ostreambuf_iterator::ostream_type

Jenis yang menyediakan jenis aliran .ostream_iterator

typedef basicOstream<CharType, Traits> ostream_type;

Keterangan

Jenisnya adalah sinonim untuk basicOstream<CharType, Traits>

Contoh

Lihat ostreambuf_iterator untuk contoh cara mendeklarasikan dan menggunakan ostream_type.

ostreambuf_iterator::streambuf_type

Jenis yang menyediakan jenis aliran .ostreambuf_iterator

typedef basic_streambuf<CharType, Traits> streambuf_type;

Keterangan

Jenisnya adalah sinonim untuk basic_streambuf<CharType, Traits>, kelas stream untuk buffer I/O yang menjadi ketika dikhususkan streambuf untuk jenis charkarakter .

Contoh

Lihat ostreambuf_iterator untuk contoh cara mendeklarasikan dan menggunakan streambuf_type.

ostreambuf_iterator::traits_type

Jenis yang menyediakan jenis sifat karakter dari ostream_iterator.

typedef Traits traits_type;

Keterangan

Jenisnya adalah sinonim untuk parameter Traitstemplat .

Contoh

// 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;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/

Baca juga

<iterator>
Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++