Aracılığıyla paylaş


istream_iterator Sınıfı

Bir giriş yineleyici nesnesi tanımlar. sınıf nesnelerini Type depoladığı bir nesne aracılığıyla eriştiği giriş akışından , Traits>türüne<pointer basic_istreamCharTypeayıklar.

Sözdizimi

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&>;

Parametreler

Tür
Çıkış akışından ayıklanacak nesnenin türü.

CharType
için istream_iteratorkarakter türünü temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir char.

Özellik
için istream_iteratorkarakter türünü temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir char_traits<CharType>.

Mesafe
için istream_iteratorfark türünü temsil eden imzalı tam sayı türü. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir ptrdiff_t.

Sınıf istream_iterator nesnesini, geçersiz depolanan bir işaretçiyle oluşturup artırdıktan sonra, nesne ilişkili giriş akışından türdeki Type bir nesneyi ayıklamaya ve depolamaya çalışır. Ayıklama işlemi başarısız olursa, nesne etkili bir şekilde depolanan işaretçinin yerini alır, böylece bir dizi sonu gösterge oluşturur.

Oluşturucular

Oluşturucu Açıklama
istream_iterator Varsayılan istream_iterator olarak bir akış sonu yineleyicisi veya istream_iterator yineleyicinin okuduğu akış türü için başlatılan bir yineleyici oluşturur.

Tür tanımları

Tür adı Açıklama
char_type öğesinin karakter türünü sağlayan bir tür istream_iterator.
istream_type akış türü için sağlayan bir tür istream_iterator.
traits_type karakterinin karakter özellikleri türünü sağlayan bir istream_iteratortür.

İşleçler

Operator Açıklama
operatör* Başvuru kaldırma işleci, tarafından istream_iteratorele alınan türündeki Type depolanan nesneyi döndürür.
operatör-> Varsa, bir üyenin değerini döndürür.
operator++ Giriş akışındaki artırılmış nesneyi ayıklar ya da artırmadan önce nesneyi kopyalar ve kopyayı döndürür.

Gereksinimler

Üst bilgi:<yineleyici>

Ad alanı: std

istream_iterator::char_type

öğesinin karakter türünü sağlayan bir tür istream_iterator.

typedef CharType char_type;

Açıklamalar

türü, şablon parametresi Chartypeiçin bir eş anlamlıdır.

Örnek

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

Varsayılan istream_iterator olarak bir akış sonu yineleyicisi veya istream_iterator yineleyicinin okuduğu akış türü için başlatılan bir yineleyici oluşturur.

istream_iterator();

istream_iterator(istream_type& _Istr);

Parametreler

_Istr
Okunacak giriş akışı, başlatmak istream_iteratoriçin kullanılır.

Açıklamalar

İlk oluşturucu, giriş akışı işaretçisini null bir işaretçiyle başlatır ve bir akış sonu yineleyicisi oluşturur. İkinci oluşturucu giriş akışı işaretçisini &_Istr ile başlatır, ardından türünde Typebir nesneyi ayıklamayı ve depolamayı dener.

Akış sonu yineleyicisi, akışın sonuna ulaşıp ulaşmadığını istream_iterator test etmek için kullanılabilir.

Örnek

// 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 vecor
   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

akış türü için sağlayan bir tür istream_iterator.

typedef basic_istream<CharType, Traits> istream_type;

Açıklamalar

Türü CharType, Traits için basic_istream<bir eş anlamlıdır>.

Örnek

nasıl bildirilip kullanılacağına istream_typeilişkin bir örnek için bkz. istream_iterator.

istream_iterator::operator*

Başvuru kaldırma işleci, tarafından istream_iteratorele alınan türündeki Type depolanan nesneyi döndürür.

const Type& operator*() const;

Dönüş Değeri

türündeki Typedepolanan nesne.

Örnek

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

Varsa, bir üyenin değerini döndürür.

const Type* operator->() const;

Dönüş Değeri

Varsa üyenin değeri.

Açıklamalar

i->m eşdeğerdir (*i).m

işleci döndürür &*this.

Örnek

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

Giriş akışındaki artırılmış nesneyi ayıklar ya da artırmadan önce nesneyi kopyalar ve kopyayı döndürür.

istream_iterator<Type, CharType, Traits, Distance>& operator++();

istream_iterator<Type, CharType, Traits, Distance> operator++(int);

Dönüş Değeri

İlk üye işleci, giriş akışından ayıklanan türdeki Type artımlı nesneye başvuru döndürür ve ikinci üye işlevi nesnenin bir kopyasını döndürür.

Örnek

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

karakterinin karakter özellikleri türünü sağlayan bir istream_iteratortür.

typedef Traits traits_type;

Açıklamalar

Tür, şablon parametresi Traits için bir eş anlamlıdır.

Örnek

// 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;
}

Ayrıca bkz.

input_iterator_tag Yapısı
iterator Yapısı
<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu