ostream_iterator Sınıfı
Sınıf şablonu ostream_iterator ayıklama operator <<
ile çıkış akışına ardışık öğeler yazan bir çıkış yineleyici nesnesi açıklar.
Sözdizimi
template <class Type class CharType = char class Traits = char_traits <CharType>>
class ostream_iterator
Parametreler
Tür
Çıkış akımına eklenecek nesnenin türü.
CharType
için ostream_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 ostream_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ğer CharType'tırchar_traits
<>.
Ostream_iterator sınıfının, bir çıkış yineleyici için gereksinimleri karşılaması gerekir. Algoritmalar bir kullanılarak ostream_iterator
çıkış akışlarına doğrudan yazılabilir.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
ostream_iterator | Çıkış akışına yazmak için başlatılan ve sınırlandırılmış bir ostream_iterator oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
char_type | öğesinin karakter türünü sağlayan bir tür ostream_iterator . |
ostream_type | akış türü için sağlayan bir tür ostream_iterator . |
traits_type | karakterinin karakter özellikleri türünü sağlayan bir ostream_iterator tür. |
İşleçler
Operator | Açıklama |
---|---|
operatör* | Çıkış yineleyici ifadesini * i = x uygulamak için kullanılan başvuru kaldırma işleci. |
operator++ | İşlem çağrılmadan önce ele alındığı nesneye bir ostream_iterator döndüren işlevsiz bir artış işleci. |
operator= | Çıkış akışına yazmak için çıkış yineleyici ifadesini * i = x uygulamak için kullanılan atama işleci. |
Gereksinimler
Üst bilgi:<yineleyici>
Ad alanı: std
ostream_iterator::char_type
Yineleyicinin karakter türünü sağlayan bir tür.
typedef CharType char_type;
Açıklamalar
türü, şablon parametresi CharType
için bir eş anlamlıdır.
Örnek
// 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*
Çıkış yineleyici ifadesini uygulamak için kullanılan başvuru kaldırma işleci * ii = x.
ostream_iterator<Type, CharType, Traits>& operator*();
Dönüş Değeri
öğesine bir ostream_iterator
başvuru.
Açıklamalar
Yerine getirmesi gereken bir çıkış yineleyicisinin ostream_iterator
gereksinimleri yalnızca * ii = geçerli olamaz ve veya operator=
ile ilgili operator
hiçbir şey söylemiyor. Bu uygulamadaki üye işleci döndürür *this
.
Örnek
// 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++
İşlem çağrılmadan önce ele alındığı nesneye bir ostream_iterator
döndüren işlevsiz bir artış işleci.
ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);
Dönüş Değeri
öğesine bir ostream_iterator
başvuru.
Açıklamalar
Bu üye işleçlerin her ikisi de döndürür *this
.
Örnek
// 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=
Çıkış akışına yazmak için * i
= x
output_iterator ifadesini uygulamak için kullanılan atama işleci.
ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);
Parametreler
Val
Çıkış akışına eklenecek türündeki Type
nesnenin değeri.
Dönüş Değeri
işleci nesneyle ilişkilendirilmiş çıkış akışına val ekler, ardından ostream_iterator oluşturucusunda belirtilen sınırlayıcıyı (varsa) ve sonra öğesine ostream_iterator
bir başvuru döndürür.
Açıklamalar
Yerine getirmesi gereken bir çıkış yineleyicisinin ostream_iterator
gereksinimleri yalnızca * ii
= t
ifadesinin geçerli olmasını gerektirir ve işleç veya işleç= hakkında tek başına hiçbir şey söylemiyor. Bu üye işleci döndürür *this
.
Örnek
// 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
Çıkış akışına yazmak için başlatılan ve sınırlandırılmış bir ostream_iterator
oluşturur.
ostream_iterator(
ostream_type& _Ostr);
ostream_iterator(
ostream_type& _Ostr,
const CharType* _Delimiter);
Parametreler
_Ostr
Yinelenecek ostream_iterator::ostream_type türünde çıkış akışı.
_Sınırlayıcı
Değerler arasında çıkış akışına eklenen sınırlayıcı.
Açıklamalar
İlk oluşturucu, çıkış akışı işaretçisini ile &_Ostr
başlatır. Sınırlayıcı dize işaretçisi boş bir dizeyi gösterir.
İkinci oluşturucu, çıkış akışı işaretçisini ile &_Ostr
ve sınırlayıcı dize işaretçisini _Delimiter ile başlatır.
Örnek
// 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
Yineleyicinin akış türünü sağlayan bir tür.
typedef basic_ostream<CharType, Traits> ostream_type;
Açıklamalar
türü,> yazmak için kullanılabilecek nesneleri tanımlayan iostream hiyerarşisinin bir akış sınıfı olan basic_ostream<CharType
için bir eş anlamlıdır. Traits
Örnek
bildirme ve kullanma ostream_type
örneği için bkz. ostream_iterator.
ostream_iterator::traits_type
Yineleyicinin karakter özellikleri türünü sağlayan bir tür.
typedef Traits traits_type;
Açıklamalar
türü, şablon parametresi Traits
için bir eş anlamlıdır.
Örnek
// 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
*/
Ayrıca bkz.
<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu