Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjelaskan objek iterator input. Ini mengekstrak objek kelas Type dari aliran input, yang diaksesnya melalui objek yang disimpannya, dari jenis pointer ke basic_istreamCharType<, . Traits>
Sintaks
template <class Type, class CharType = char, class Traits = char_traits<CharType>, class Distance = ptrdiff_t>
class istream_iterator
: public iterator<
input_iterator_tag, Type, Distance,
const Type *,
const Type&>;
Parameter
Jenis
Jenis objek yang akan diekstrak dari aliran input.
CharType
Jenis yang mewakili jenis karakter untuk istream_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char.
Sifat
Jenis yang mewakili jenis karakter untuk istream_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char_traits<CharType>.
Jarak
Jenis integral yang ditandatangani yang mewakili jenis perbedaan untuk istream_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah ptrdiff_t.
Setelah membuat atau menaikkan objek kelas istream_iterator dengan pointer yang disimpan nonnull, objek mencoba mengekstrak dan menyimpan objek jenis Type dari aliran input terkait. Jika ekstraksi gagal, objek secara efektif mengganti pointer yang disimpan dengan pointer null, sehingga membuat indikator akhir urutan.
Konstruktor
| Konstruktor | Deskripsi |
|---|---|
| istream_iterator | Membuat iterator end-of-stream sebagai default istream_iterator atau diinisialisasi istream_iterator ke jenis aliran iterator tempatnya dibaca. |
Typedefs
| Nama jenis | Deskripsi |
|---|---|
| char_type | Jenis yang menyediakan jenis karakter .istream_iterator |
| istream_type | Jenis yang menyediakan jenis aliran .istream_iterator |
| traits_type | Jenis yang menyediakan jenis sifat karakter dari istream_iterator. |
Operator
| Operator | Deskripsi |
|---|---|
| Operator* | Operator dereferensi mengembalikan objek jenis Type tersimpan yang ditangani oleh istream_iterator. |
| Operator-> | Mengembalikan nilai anggota, jika ada. |
| operator++ | Mengekstrak objek bertahap dari aliran input atau menyalin objek sebelum menaikkannya dan mengembalikan salinan. |
Persyaratan
Header:<iterator>
Namespace: std
istream_iterator::char_type
Jenis yang menyediakan jenis karakter .istream_iterator
typedef CharType char_type;
Keterangan
Jenisnya adalah sinonim untuk parameter Chartypetemplat .
Contoh
// istream_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef istream_iterator<int>::char_type CHT1;
typedef istream_iterator<int>::traits_type CHTR1;
// Standard iterator interface for reading
// elements from the input stream:
cout << "Enter integers separated by spaces & then\n"
<< " any character ( try example: '2 4 f' ): ";
// istream_iterator for reading int stream
istream_iterator<int, CHT1, CHTR1> intRead ( cin );
// End-of-stream iterator
istream_iterator<int, CHT1, CHTR1> EOFintRead;
while ( intRead != EOFintRead )
{
cout << "Reading: " << *intRead << endl;
++intRead;
}
cout << endl;
}
istream_iterator::istream_iterator
Membuat iterator end-of-stream sebagai default istream_iterator atau diinisialisasi istream_iterator ke jenis aliran iterator tempatnya dibaca.
istream_iterator();
istream_iterator(istream_type& _Istr);
Parameter
_Istr
Aliran input yang akan dibaca digunakan untuk menginisialisasi istream_iterator.
Keterangan
Konstruktor Pertama menginisialisasi penunjuk aliran input dengan pointer null dan membuat iterator end-of-stream. Konstruktor kedua menginisialisasi penunjuk aliran input dengan &_Istr, lalu mencoba mengekstrak dan menyimpan objek jenis Type.
Iterator end-of-stream dapat digunakan untuk menguji apakah istream_iterator telah mencapai akhir aliran.
Contoh
// istream_iterator_istream_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <algorithm>
#include <iostream>
int main( )
{
using namespace std;
// Used in conjunction with copy algorithm
// to put elements into a vector read from cin
vector<int> vec ( 4 );
vector <int>::iterator Iter;
cout << "Enter 4 integers separated by spaces & then\n"
<< " a character ( try example: '2 4 6 8 a' ): ";
istream_iterator<int> intvecRead ( cin );
// Default constructor will test equal to end of stream
// for delimiting source range of vector
copy ( intvecRead , istream_iterator<int>( ) , vec.begin ( ) );
cin.clear ( );
cout << "vec = ";
for ( Iter = vec.begin( ) ; Iter != vec.end( ) ; Iter++ )
cout << *Iter << " "; cout << endl;
}
istream_iterator::istream_type
Jenis yang menyediakan jenis aliran .istream_iterator
typedef basic_istream<CharType, Traits> istream_type;
Keterangan
Jenisnya adalah sinonim untuk basic_istream<CharType, Traits.>
Contoh
Lihat istream_iterator untuk contoh cara mendeklarasikan dan menggunakan istream_type.
istream_iterator::operator*
Operator dereferensi mengembalikan objek jenis Type tersimpan yang ditangani oleh istream_iterator.
const Type& operator*() const;
Tampilkan Nilai
Objek tersimpan dari jenis Type.
Contoh
// istream_iterator_operator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <algorithm>
#include <iostream>
int main( )
{
using namespace std;
cout << "Enter integers separated by spaces & then\n"
<< " a character ( try example: '2 4 6 8 a' ): ";
// istream_iterator from stream cin
istream_iterator<int> intRead ( cin );
// End-of-stream iterator
istream_iterator<int> EOFintRead;
while ( intRead != EOFintRead )
{
cout << "Reading: " << *intRead << endl;
++intRead;
}
cout << endl;
}
istream_iterator::operator->
Mengembalikan nilai anggota, jika ada.
const Type* operator->() const;
Tampilkan Nilai
Nilai anggota, jika ada.
Keterangan
i->m setara dengan (*i).m
Operator mengembalikan &*this.
Contoh
// istream_iterator_operator_vm.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>
#include <complex>
using namespace std;
int main( )
{
cout << "Enter complex numbers separated by spaces & then\n"
<< " a character pair ( try example: '(1,2) (3,4) (a,b)' ): ";
// istream_iterator from stream cin
istream_iterator< complex<double> > intRead ( cin );
// End-of-stream iterator
istream_iterator<complex<double> > EOFintRead;
while ( intRead != EOFintRead )
{
cout << "Reading the real part: " << intRead ->real( ) << endl;
cout << "Reading the imaginary part: " << intRead ->imag( ) << endl;
++intRead;
}
cout << endl;
}
istream_iterator::operator++
Mengekstrak objek bertahap dari aliran input atau menyalin objek sebelum menaikkannya dan mengembalikan salinan.
istream_iterator<Type, CharType, Traits, Distance>& operator++();
istream_iterator<Type, CharType, Traits, Distance> operator++(int);
Tampilkan Nilai
Operator anggota pertama mengembalikan referensi ke objek bertahap Type jenis yang diekstrak dari aliran input dan fungsi anggota kedua mengembalikan salinan objek.
Contoh
// istream_iterator_operator_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <algorithm>
#include <iostream>
int main( )
{
using namespace std;
cout << "Enter integers separated by spaces & then\n"
<< " a character ( try example: '2 4 6 8 a' ): ";
// istream_iterator from stream cin
istream_iterator<int> intRead ( cin );
// End-of-stream iterator
istream_iterator<int> EOFintRead;
while ( intRead != EOFintRead )
{
cout << "Reading: " << *intRead << endl;
++intRead;
}
cout << endl;
}
istream_iterator::traits_type
Jenis yang menyediakan jenis sifat karakter dari istream_iterator.
typedef Traits traits_type;
Keterangan
Jenisnya adalah sinonim untuk parameter templat Traits.
Contoh
// istream_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>
int main( )
{
using namespace std;
typedef istream_iterator<int>::char_type CHT1;
typedef istream_iterator<int>::traits_type CHTR1;
// Standard iterator interface for reading
// elements from the input stream:
cout << "Enter integers separated by spaces & then\n"
<< " any character ( try example: '10 20 a' ): ";
// istream_iterator for reading int stream
istream_iterator<int, CHT1, CHTR1> intRead ( cin );
// End-of-stream iterator
istream_iterator<int, CHT1, CHTR1> EOFintRead;
while ( intRead != EOFintRead )
{
cout << "Reading: " << *intRead << endl;
++intRead;
}
cout << endl;
}
Lihat juga
input_iterator_tag Struct
Iterator Struct
<iterator>
Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++