Kelas ostream_iterator
Templat kelas ostream_iterator menjelaskan objek iterator output yang menulis elemen berturut-turut ke aliran output dengan ekstraksi operator <<
.
Sintaks
template <class Type class CharType = char class Traits = char_traits <CharType>>
class ostream_iterator
Parameter
Jenis
Jenis objek yang akan dimasukkan ke dalam aliran output.
CharType
Jenis yang mewakili jenis karakter untuk ostream_iterator
. Argumen ini bersifat opsional dan nilai defaultnya adalah char
.
Sifat
Jenis yang mewakili jenis karakter untuk ostream_iterator
. Argumen ini bersifat opsional dan nilai defaultnya adalah char_traits
<CharType>.
Kelas ostream_iterator harus memenuhi persyaratan untuk iterator output. Algoritma dapat ditulis langsung ke aliran output menggunakan ostream_iterator
.
Konstruktor
Konstruktor | Deskripsi |
---|---|
ostream_iterator | Membuat ostream_iterator yang diinisialisasi dan dibatasi untuk menulis ke aliran output. |
Typedefs
Nama jenis | Deskripsi |
---|---|
char_type | Jenis yang menyediakan jenis karakter .ostream_iterator |
ostream_type | Jenis yang menyediakan jenis aliran .ostream_iterator |
traits_type | Jenis yang menyediakan jenis sifat karakter dari ostream_iterator . |
Operators
Operator | Deskripsi |
---|---|
Operator* | Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x . |
operator++ | Operator kenaikan nonfungsi yang mengembalikan ostream_iterator ke objek yang sama yang ditanganinya sebelum operasi dipanggil. |
operator= | Operator penugasan yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x untuk menulis ke aliran output. |
Persyaratan
Header:<iterator>
Namespace: std
ostream_iterator::char_type
Jenis yang menyediakan jenis karakter iterator.
typedef CharType char_type;
Keterangan
Jenisnya adalah sinonim untuk parameter CharType
templat .
Contoh
// ostream_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to the output stream\n"
<< "by intOut are:" << endl;
*intOut = 10;
*intOut = 20;
*intOut = 30;
}
/* Output:
The integers written to the output stream
by intOut are:
10
20
30
*/
ostream_iterator::operator*
Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * ii = x.
ostream_iterator<Type, CharType, Traits>& operator*();
Tampilkan Nilai
Referensi ke ostream_iterator
.
Keterangan
Persyaratan untuk iterator output yang ostream_iterator
harus dipenuhi hanya memerlukan ekspresi * ii = tidak valid dan tidak mengatakan apa-apa tentang operator
atau operator=
sendiri. Operator anggota dalam implementasi ini mengembalikan *this
.
Contoh
// ostream_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::operator++
Operator kenaikan nonfungsi yang mengembalikan ostream_iterator
ke objek yang sama yang ditanganinya sebelum operasi dipanggil.
ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);
Tampilkan Nilai
Referensi ke ostream_iterator
.
Keterangan
Operator anggota ini mengembalikan *this
.
Contoh
// ostream_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::operator=
Operator penugasan yang digunakan untuk mengimplementasikan ekspresi output_iterator * i
= x
untuk menulis ke aliran output.
ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);
Parameter
Val
Nilai objek jenis Type
yang akan dimasukkan ke dalam aliran output.
Tampilkan Nilai
Operator menyisipkan val ke dalam aliran output yang terkait dengan objek, diikuti oleh pemisah yang ditentukan dalam konstruktor ostream_iterator (jika ada), lalu mengembalikan referensi ke ostream_iterator
.
Keterangan
Persyaratan untuk iterator output yang ostream_iterator
harus dipenuhi hanya memerlukan ekspresi * ii
= t
menjadi valid dan tidak mengatakan apa pun tentang operator atau operator = sendiri. Operator anggota ini mengembalikan *this
.
Contoh
// ostream_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
}
/* Output:
Elements written to output stream:
10
20
30
*/
ostream_iterator::ostream_iterator
Membuat ostream_iterator
yang diinisialisasi dan dibatasi untuk menulis ke aliran output.
ostream_iterator(
ostream_type& _Ostr);
ostream_iterator(
ostream_type& _Ostr,
const CharType* _Delimiter);
Parameter
_Ostr
Aliran output jenis ostream_iterator::ostream_type yang akan diulang.
_Pembatas
Pemisah yang dimasukkan ke dalam aliran output di antara nilai.
Keterangan
Konstruktor pertama menginisialisasi penunjuk aliran output dengan &_Ostr
. Penunjuk string pemisah menunjuk string kosong.
Konstruktor kedua menginisialisasi penunjuk aliran output dengan &_Ostr
dan penunjuk string pemisah dengan _Delimiter.
Contoh
// ostream_iterator_ostream_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostream_iterator for stream cout
ostream_iterator<int> intOut ( cout , "\n" );
*intOut = 10;
intOut++;
*intOut = 20;
intOut++;
int i;
vector<int> vec;
for ( i = 1 ; i < 7 ; ++i )
{
vec.push_back ( i );
}
// Write elements to standard output stream
cout << "Elements output without delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout ) );
cout << endl;
// Write elements with delimiter " : " to output stream
cout << "Elements output with delimiter: ";
copy ( vec.begin ( ), vec.end ( ),
ostream_iterator<int> ( cout, " : " ) );
cout << endl;
}
/* Output:
10
20
Elements output without delimiter: 123456
Elements output with delimiter: 1 : 2 : 3 : 4 : 5 : 6 :
*/
ostream_iterator::ostream_type
Jenis yang menyediakan jenis aliran iterator.
typedef basic_ostream<CharType, Traits> ostream_type;
Keterangan
Jenisnya adalah sinonim untuk basic_ostreamCharType
<, Traits
>, kelas streaming hierarki iostream yang menentukan objek yang dapat digunakan untuk menulis.
Contoh
Lihat ostream_iterator untuk contoh cara mendeklarasikan dan menggunakan ostream_type
.
ostream_iterator::traits_type
Jenis yang menyediakan jenis sifat karakter dari iterator.
typedef Traits traits_type;
Keterangan
Jenisnya adalah sinonim untuk parameter Traits
templat .
Contoh
// ostream_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// The following not OK, but are just the default values:
typedef ostream_iterator<int>::char_type CHT1;
typedef ostream_iterator<int>::traits_type CHTR1;
// ostream_iterator for stream cout
// with new line delimiter:
ostream_iterator<int, CHT1, CHTR1> intOut ( cout , "\n" );
// Standard iterator interface for writing
// elements to the output stream:
cout << "The integers written to output stream\n"
<< "by intOut are:" << endl;
*intOut = 1;
*intOut = 10;
*intOut = 100;
}
/* Output:
The integers written to output stream
by intOut are:
1
10
100
*/
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