ostreambuf_iterator Sınıfı
Sınıf şablonu ostreambuf_iterator, ayıklama işleciyle>> çıkış akışına ardışık karakter öğeleri yazan bir çıkış yineleyici nesnesi açıklar. s ostreambuf_iterator
, çıkış akışına eklenen nesnenin türünde genel bir tür yerine karakterlere sahip ostream_iterator Sınıfı'ndan farklıdır.
Sözdizimi
template <class CharType = char class Traits = char_traits <CharType>>
Parametreler
CharType
ostreambuf_iterator için 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
ostreambuf_iterator için 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
<>.
Açıklamalar
Ostreambuf_iterator sınıfının, bir çıkış yineleyici için gereksinimleri karşılaması gerekir. Algoritmalar bir kullanılarak ostreambuf_iterator
çıkış akışlarına doğrudan yazılabilir. Sınıf, karakterlerin biçimindeki ham (biçimlendirilmemiş) G/Ç akışına erişim sağlayarak düşük düzey bir akış ve üst düzey akış yineleyicilerle ilişkili arabelleğe alma işlemini ve karakter çevirilerini atlama özelliği sağlar.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
ostreambuf_iterator | Çıkış akışına karakter yazmak için başlatılan bir ostreambuf_iterator oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
char_type | öğesinin karakter türünü sağlayan bir tür ostreambuf_iterator . |
ostream_type | akış türü için sağlayan bir tür ostream_iterator . |
streambuf_type | akış türü için sağlayan bir tür ostreambuf_iterator . |
traits_type | karakterinin karakter özellikleri türünü sağlayan bir ostream_iterator tür. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
başarısız | Çıkış akışı arabelleğine ekleme hatasını sınar. |
İş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 ostreambuf_iterator döndüren işlevsiz bir artış işleci. |
operator= | İşleç, ilişkili akış ara belleğine bir karakter ekler. |
Gereksinimler
Üst bilgi:<yineleyici>
Ad alanı: std
ostreambuf_iterator::char_type
öğesinin karakter türünü sağlayan bir tür ostreambuf_iterator
.
typedef CharType char_type;
Açıklamalar
türü, şablon parametresi CharType
için bir eş anlamlıdır.
Örnek
// ostreambuf_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostreambuf_iterator<char>::char_type CHT1;
typedef ostreambuf_iterator<char>::traits_type CHTR1;
// ostreambuf_iterator for stream cout
// with new line delimiter:
ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output streambuf:
cout << "The characters written to the output stream\n"
<< " by charOutBuf are: ";
*charOutBuf = 'O';
charOutBuf++;
*charOutBuf = 'U';
charOutBuf++;
*charOutBuf = 'T';
charOutBuf++;
cout << "." << endl;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/
ostreambuf_iterator::failed
Çıkış akışı arabelleğine ekleme hatasını sınar.
bool failed() const throw();
Dönüş Değeri
true
çıkış akışı arabelleğine daha önce ekleme başarısız olduysa; aksi takdirde false
.
Açıklamalar
Üye işlevi, üyenin önceki kullanımlarında subf_-sputc
> çağrısının döndürdüğü eof değerini döndürürtrue
.operator=
Örnek
// ostreambuf_iterator_failed.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
ostreambuf_iterator<char> charOut ( cout );
*charOut = 'a';
charOut ++;
*charOut = 'b';
charOut ++;
*charOut = 'c';
cout << " are characters output individually." << endl;
bool b1 = charOut.failed ( );
if (b1)
cout << "At least one insertion failed." << endl;
else
cout << "No insertions failed." << endl;
}
/* Output:
abc are characters output individually.
No insertions failed.
*/
ostreambuf_iterator::operator*
Çıkış yineleyici ifadesini * i = x uygulamak için kullanılan işlev dışı başvuru kaldırma işleci.
ostreambuf_iterator<CharType, Traits>& operator*();
Dönüş Değeri
ostreambuf yineleyici nesnesi.
Açıklamalar
Bu işleç yalnızca çıkış yineleyici ifadesinde * i = x çıkış karakterlerini akış arabelleğine dönüştürür. Bir ostreambuf yineleyicisine uygulandığında yineleyiciyi döndürür; *yineleyici yineleyici döndürür,
Örnek
// ostreambuf_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // no effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/
ostreambuf_iterator::operator++
İşlem çağrılmadan önce ele alınan karaktere bir akış yineleyicisi döndüren işlevsiz bir artış işleci.
ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);
Dönüş Değeri
Başlangıçta ele alınan karaktere veya CharType, Traits'e> dönüştürülebilen uygulama tanımlı bir nesneye<ostreambuf_iterator
başvuru.
Açıklamalar
işleci, çıkış yineleyici ifadesini * i = x uygulamak için kullanılır.
Örnek
// ostreambuf_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/
ostreambuf_iterator::operator=
İşleç, ilişkili akış ara belleğine bir karakter ekler.
ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);
Parametreler
_Char
Akış arabelleğine eklenecek karakter.
Dönüş Değeri
Akış arabelleğine eklenen karaktere başvuru.
Açıklamalar
Çıkış yineleyicisi ifadesini * bir çıkış akışına yazmak için i = x uygulamak için kullanılan atama işleci.
Örnek
// ostreambuf_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/
ostreambuf_iterator::ostreambuf_iterator
Çıkış akışına karakter yazmak için başlatılan bir ostreambuf_iterator
oluşturur.
ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();
Parametreler
strbuf
Çıkış stream-buffer işaretçisini başlatmak için kullanılan çıkış streambuf nesnesi.
Ostr
Çıkış stream-buffer işaretçisini başlatmak için kullanılan çıkış akışı nesnesi.
Açıklamalar
İlk oluşturucu, çıkış stream-buffer işaretçisini strbuf ile başlatır.
İkinci oluşturucu ile çıkış stream-buffer işaretçisini Ostr
başlatır. rdbuf
. Depolanan işaretçi null bir işaretçi olmamalıdır.
Örnek
// ostreambuf_iteratorOstreambuf_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
ostreambuf_iterator<char> charOut ( cout );
*charOut = 'O';
charOut ++;
*charOut = 'U';
charOut ++;
*charOut = 'T';
cout << " are characters output individually." << endl;
ostreambuf_iterator<char> strOut ( cout );
string str = "These characters are being written to the output stream.\n ";
copy ( str.begin ( ), str. end ( ), strOut );
}
/* Output:
OUT are characters output individually.
These characters are being written to the output stream.
*/
ostreambuf_iterator::ostream_type
akış türü için sağlayan bir tür ostream_iterator
.
typedef basicOstream<CharType, Traits> ostream_type;
Açıklamalar
Türü CharType, Traits için basicOstream
<bir eş anlamlıdır>
Örnek
bildirme ve kullanma ostream_type
örneği için bkz. ostreambuf_iterator.
ostreambuf_iterator::streambuf_type
akış türü için sağlayan bir tür ostreambuf_iterator
.
typedef basic_streambuf<CharType, Traits> streambuf_type;
Açıklamalar
türü, karakter türüne basic_streambuf
<özel olduğunda olan streambuf
G/Ç arabellekleri için bir akış sınıfı olan CharType, Traits> için bir eş anlamlıdır.char
Örnek
bildirme ve kullanma streambuf_type
örneği için bkz. ostreambuf_iterator.
ostreambuf_iterator::traits_type
karakterinin karakter özellikleri türünü sağlayan bir ostream_iterator
tür.
typedef Traits traits_type;
Açıklamalar
türü, şablon parametresi Traits
için bir eş anlamlıdır.
Örnek
// ostreambuf_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostreambuf_iterator<char>::char_type CHT1;
typedef ostreambuf_iterator<char>::traits_type CHTR1;
// ostreambuf_iterator for stream cout
// with new line delimiter:
ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output streambuf:
cout << "The characters written to the output stream\n"
<< " by charOutBuf are: ";
*charOutBuf = 'O';
charOutBuf++;
*charOutBuf = 'U';
charOutBuf++;
*charOutBuf = 'T';
charOutBuf++;
cout << "." << endl;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/
Ayrıca bkz.
<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu