Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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++