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_istream
CharType
ayı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_iterator
karakter 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_iterator
karakter 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_iterator
fark 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_iterator tür. |
İşleçler
Operator | Açıklama |
---|---|
operatör* | Başvuru kaldırma işleci, tarafından istream_iterator ele 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 Chartype
iç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_iterator
iç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 Type
bir 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_type
ilişkin bir örnek için bkz. istream_iterator.
istream_iterator::operator*
Başvuru kaldırma işleci, tarafından istream_iterator
ele alınan türündeki Type
depolanan nesneyi döndürür.
const Type& operator*() const;
Dönüş Değeri
türündeki Type
depolanan 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_iterator
tü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