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_iterator
berbeda 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 CharType
templat .
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 char
karakter .
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 Traits
templat .
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++
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk