Bagikan melalui


Kelas front_insert_iterator

Menjelaskan adaptor iterator yang memenuhi persyaratan iterator output. Ini menyisipkan, daripada menimpa, elemen ke depan urutan. Dengan demikian memberikan semantik yang berbeda dari semantik timpa yang disediakan oleh iterator kontainer urutan C++. Kelas front_insert_iterator di-templat pada jenis kontainer.

Sintaks

template <class Container>
class front_insert_iterator;

Parameter

Kontainer
Jenis kontainer ke depan elemen mana yang akan dimasukkan oleh front_insert_iterator.

Keterangan

Kontainer harus memenuhi persyaratan untuk urutan penyisipan depan di mana dimungkinkan untuk menyisipkan elemen di awal urutan dalam waktu konstanta yang diamortisasi. Kontainer urutan Pustaka Standar C++ yang ditentukan oleh Kelas deque dan kelas daftar menyediakan fungsi anggota yang diperlukan push_front dan memenuhi persyaratan ini. Sebaliknya, kontainer urutan yang ditentukan oleh Kelas vektor tidak memenuhi persyaratan ini dan tidak dapat disesuaikan untuk digunakan dengan front_insert_iterators. Harus front_insert_iterator selalu diinisialisasi dengan kontainernya.

Konstruktor

Konstruktor Deskripsi
front_insert_iterator Membuat iterator yang dapat menyisipkan elemen di bagian depan objek kontainer tertentu.

Typedefs

Nama jenis Deskripsi
container_type Jenis yang mewakili kontainer tempat penyisipan depan akan dibuat.
referensi Jenis yang menyediakan referensi ke elemen dalam urutan yang dikontrol oleh kontainer terkait.

Operator

Operator Deskripsi
Operator* Operator dereferensi yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x untuk penyisipan depan.
operator++ Menaikkan front_insert_iterator ke lokasi berikutnya tempat nilai dapat disimpan.
operator= Operator penugasan yang digunakan untuk mengimplementasikan ekspresi iterator output * i = x untuk penyisipan depan.

Persyaratan

Header: <iterator>

Namespace: std

front_insert_iterator::container_type

Jenis yang mewakili kontainer tempat penyisipan depan akan dibuat.

typedef Container container_type;

Keterangan

Jenisnya adalah sinonim untuk kontainer parameter templat.

Contoh

// front_insert_iterator_container_type.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   list<int> L1;
   front_insert_iterator<list<int> >::container_type L2 = L1;
   front_inserter ( L2 ) = 20;
   front_inserter ( L2 ) = 10;
   front_inserter ( L2 ) = 40;

   list <int>::iterator vIter;
   cout << "The list L2 is: ( ";
   for ( vIter = L2.begin ( ) ; vIter != L2.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}
/* Output:
The list L2 is: ( 40 10 20 ).
*/

front_insert_iterator::front_insert_iterator

Membuat iterator yang dapat menyisipkan elemen di bagian depan objek kontainer tertentu.

explicit front_insert_iterator(Container& _Cont);

Parameter

_Lanjut
Objek kontainer di front_insert_iterator mana adalah untuk menyisipkan elemen.

Tampilkan Nilai

A front_insert_iterator untuk objek kontainer parameter.

Contoh

// front_insert_iterator_front_insert_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   int i;
   list <int>::iterator L_Iter;

   list<int> L;
   for (i = -1 ; i < 9 ; ++i )
   {
      L.push_back ( 2 * i );
   }

   cout << "The list L is:\n ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
      cout << *L_Iter << " ";
   cout << ")." << endl;

   // Using the member function to insert an element
   front_inserter ( L ) = 20;

   // Alternatively, one may use the template function
   front_insert_iterator< list < int> > Iter(L);
*Iter = 30;

   cout << "After the front insertions, the list L is:\n ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
      cout << *L_Iter << " ";
   cout << ")." << endl;
}
/* Output:
The list L is:
( -2 0 2 4 6 8 10 12 14 16 ).
After the front insertions, the list L is:
( 30 20 -2 0 2 4 6 8 10 12 14 16 ).
*/

front_insert_iterator::operator*

Dereferensi sisipkan iterator yang mengembalikan elemen yang ditanganinya.

front_insert_iterator<Container>& operator*();

Tampilkan Nilai

Fungsi anggota mengembalikan nilai elemen yang ditangani.

Keterangan

Digunakan untuk mengimplementasikan ekspresi iterator output *Nilai iter = . Jika Iter adalah iterator yang membahas elemen secara berurutan, maka nilai *Iter = mengganti elemen tersebut dengan nilai dan tidak mengubah jumlah total elemen dalam urutan.

Contoh

// front_insert_iterator_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   int i;
   list <int>::iterator L_Iter;

   list<int> L;
   for ( i = -1 ; i < 9 ; ++i )
   {
      L.push_back ( 2 * i );
   }

   cout << "The list L is:\n ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
      cout << *L_Iter << " ";
   cout << ")." << endl;

   front_insert_iterator< list < int> > Iter(L);
*Iter = 20;

   // Alternatively, you may use
   front_inserter ( L ) = 30;

   cout << "After the front insertions, the list L is:\n ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
      cout << *L_Iter << " ";
   cout << ")." << endl;
}
/* Output:
The list L is:
( -2 0 2 4 6 8 10 12 14 16 ).
After the front insertions, the list L is:
( 30 20 -2 0 2 4 6 8 10 12 14 16 ).
*/

front_insert_iterator::operator++

Menaikkan back_insert_iterator ke lokasi berikutnya tempat nilai dapat disimpan.

front_insert_iterator<Container>& operator++();

front_insert_iterator<Container> operator++(int);

Tampilkan Nilai

Alamat front_insert_iterator lokasi berikutnya tempat nilai dapat disimpan.

Keterangan

Operator preincrementation dan postincrementation mengembalikan hasil yang sama.

Contoh

// front_insert_iterator_op_incre.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   list<int> L1;
   front_insert_iterator<list<int> > iter ( L1 );
   *iter = 10;
   iter++;
   *iter = 20;
   iter++;
   *iter = 30;
   iter++;

   list <int>::iterator vIter;
   cout << "The list L1 is: ( ";
   for ( vIter = L1.begin ( ) ; vIter != L1.end ( ); vIter++ )
      cout << *vIter << " ";
   cout << ")." << endl;
}
/* Output:
The list L1 is: ( 30 20 10 ).
*/

front_insert_iterator::operator=

Menambahkan (mendorong) nilai ke bagian depan kontainer.

front_insert_iterator<Container>& operator=(typename Container::const_reference val);

front_insert_iterator<Container>& operator=(typename Container::value_type&& val);

Parameter

Val
Nilai yang akan ditetapkan ke kontainer.

Tampilkan Nilai

Referensi ke elemen terakhir yang disisipkan di bagian depan kontainer.

Keterangan

Operator anggota pertama mengevaluasi container.push_front( val), lalu mengembalikan *this.

Operator anggota kedua mengevaluasi

container->push_front((typename Container::value_type&&) val),

kemudian mengembalikan *this.

Contoh

// front_insert_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   list<int> L1;
   front_insert_iterator<list<int> > iter ( L1 );
   *iter = 10;
   iter++;
   *iter = 20;
   iter++;
   *iter = 30;
   iter++;

   list <int>::iterator vIter;
   cout << "The list L1 is: ( ";
   for ( vIter = L1.begin ( ) ; vIter != L1.end ( ); vIter++ )
      cout << *vIter << " ";
   cout << ")." << endl;
}
/* Output:
The list L1 is: ( 30 20 10 ).
*/

front_insert_iterator::reference

Jenis yang menyediakan referensi ke elemen dalam urutan yang dikontrol oleh kontainer terkait.

typedef typename Container::reference reference;

Contoh

// front_insert_iterator_reference.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   list<int> L;
   front_insert_iterator<list<int> > fiivIter( L );
*fiivIter = 10;
*fiivIter = 20;
*fiivIter = 30;

   list<int>::iterator LIter;
   cout << "The list L is: ( ";
   for ( LIter = L.begin ( ) ; LIter != L.end ( ); LIter++)
      cout << *LIter << " ";
   cout << ")." << endl;

   front_insert_iterator<list<int> >::reference
        RefFirst = *(L.begin ( ));
   cout << "The first element in the list L is: "
        << RefFirst << "." << endl;
}
/* Output:
The list L is: ( 30 20 10 ).
The first element in the list L is: 30.
*/

Lihat juga

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