Kelas istream_iterator

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