Bagikan melalui


Kelas ostream_iterator

Templat kelas ostream_iterator menjelaskan objek iterator output yang menulis elemen berturut-turut ke aliran output dengan ekstraksi operator <<.

Sintaks

template <class Type class CharType = char class Traits = char_traits <CharType>>
class ostream_iterator

Parameter

Jenis
Jenis objek yang akan dimasukkan ke dalam aliran output.

CharType
Jenis yang mewakili jenis karakter untuk ostream_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char.

Sifat
Jenis yang mewakili jenis karakter untuk ostream_iterator. Argumen ini bersifat opsional dan nilai defaultnya adalah char_traits<CharType>.

Kelas ostream_iterator harus memenuhi persyaratan untuk iterator output. Algoritma dapat ditulis langsung ke aliran output menggunakan ostream_iterator.

Konstruktor

Konstruktor Deskripsi
ostream_iterator Membuat ostream_iterator yang diinisialisasi dan dibatasi untuk menulis ke aliran output.

Typedefs

Nama jenis Deskripsi
char_type Jenis yang menyediakan jenis karakter .ostream_iterator
ostream_type Jenis yang menyediakan jenis aliran .ostream_iterator
traits_type Jenis yang menyediakan jenis sifat karakter dari ostream_iterator.

Operators

Operator Deskripsi
Operator* Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x.
operator++ Operator kenaikan nonfungsi yang mengembalikan ostream_iterator ke objek yang sama yang ditanganinya sebelum operasi dipanggil.
operator= Operator penugasan yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x untuk menulis ke aliran output.

Persyaratan

Header:<iterator>

Namespace: std

ostream_iterator::char_type

Jenis yang menyediakan jenis karakter iterator.

typedef CharType char_type;

Keterangan

Jenisnya adalah sinonim untuk parameter CharTypetemplat .

Contoh

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

Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * ii = x.

ostream_iterator<Type, CharType, Traits>& operator*();

Tampilkan Nilai

Referensi ke ostream_iterator.

Keterangan

Persyaratan untuk iterator output yang ostream_iterator harus dipenuhi hanya memerlukan ekspresi * ii = tidak valid dan tidak mengatakan apa-apa tentang operator atau operator= sendiri. Operator anggota dalam implementasi ini mengembalikan *this.

Contoh

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

Operator kenaikan nonfungsi yang mengembalikan ostream_iterator ke objek yang sama yang ditanganinya sebelum operasi dipanggil.

ostream_iterator<Type, CharType, Traits>& operator++();
ostream_iterator<Type, CharType, Traits> operator++(int);

Tampilkan Nilai

Referensi ke ostream_iterator.

Keterangan

Operator anggota ini mengembalikan *this.

Contoh

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

Operator penugasan yang digunakan untuk mengimplementasikan ekspresi output_iterator * i = x untuk menulis ke aliran output.

ostream_iterator<Type, CharType, Traits>& operator=(const Type& val);

Parameter

Val
Nilai objek jenis Type yang akan dimasukkan ke dalam aliran output.

Tampilkan Nilai

Operator menyisipkan val ke dalam aliran output yang terkait dengan objek, diikuti oleh pemisah yang ditentukan dalam konstruktor ostream_iterator (jika ada), lalu mengembalikan referensi ke ostream_iterator.

Keterangan

Persyaratan untuk iterator output yang ostream_iterator harus dipenuhi hanya memerlukan ekspresi * ii = t menjadi valid dan tidak mengatakan apa pun tentang operator atau operator = sendiri. Operator anggota ini mengembalikan *this.

Contoh

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

Membuat ostream_iterator yang diinisialisasi dan dibatasi untuk menulis ke aliran output.

ostream_iterator(
    ostream_type& _Ostr);

ostream_iterator(
    ostream_type& _Ostr,
    const CharType* _Delimiter);

Parameter

_Ostr
Aliran output jenis ostream_iterator::ostream_type yang akan diulang.

_Pembatas
Pemisah yang dimasukkan ke dalam aliran output di antara nilai.

Keterangan

Konstruktor pertama menginisialisasi penunjuk aliran output dengan &_Ostr. Penunjuk string pemisah menunjuk string kosong.

Konstruktor kedua menginisialisasi penunjuk aliran output dengan &_Ostr dan penunjuk string pemisah dengan _Delimiter.

Contoh

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

Jenis yang menyediakan jenis aliran iterator.

typedef basic_ostream<CharType, Traits> ostream_type;

Keterangan

Jenisnya adalah sinonim untuk basic_ostreamCharType<, Traits>, kelas streaming hierarki iostream yang menentukan objek yang dapat digunakan untuk menulis.

Contoh

Lihat ostream_iterator untuk contoh cara mendeklarasikan dan menggunakan ostream_type.

ostream_iterator::traits_type

Jenis yang menyediakan jenis sifat karakter dari iterator.

typedef Traits traits_type;

Keterangan

Jenisnya adalah sinonim untuk parameter Traitstemplat .

Contoh

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

Baca juga

<iterator>
Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++