front_insert_iterator Sınıfı
Çıkış yineleyici gereksinimlerini karşılayan bir yineleyici bağdaştırıcısını açıklar. Öğelerin üzerine yazmak yerine bir dizinin önüne ekler. Bu nedenle, C++ sıralı kapsayıcıların yineleyicileri tarafından sağlanan üzerine yazma semantiğinden farklı semantikler sağlar. front_insert_iterator
sınıfı kapsayıcı türüne göre ayarlı hale getirilir.
Sözdizimi
template <class Container>
class front_insert_iterator;
Parametreler
Kapsayıcı
Öğelerinin bir front_insert_iterator
tarafından eklendiği kapsayıcının önüne türü.
Açıklamalar
Kapsayıcının itfa edilecek sabit sürede dizininin başına öğe eklemenin mümkün olduğu ön ekleme dizisinin gereksinimlerini karşılaması gerekir. Deque Sınıfı ve liste Sınıfı tarafından tanımlanan C++ Standart Kitaplık dizisi kapsayıcıları gerekli push_front
üye işlevini sağlar ve bu gereksinimleri karşılar. Buna karşılık, vektör Sınıfı tarafından tanımlanan sıralı kapsayıcılar bu gereksinimleri karşılamaz ve ile front_insert_iterator
birlikte kullanmak üzere uyarlanamaz. her front_insert_iterator
zaman kapsayıcısıyla başlatılmalıdır.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
front_insert_iterator | Belirtilen kapsayıcı nesnesinin önünde öğeler ekleyebilen bir yineleyici oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
container_type | Ön ekleme yapılacak kapsayıcıyı temsil eden bir tür. |
referans | İlişkili kapsayıcı tarafından denetlenen bir dizi içindeki bir öğeye başvuru sağlayan bir tür. |
İşleçler
Operator | Açıklama |
---|---|
operatör* | Ön ekleme için çıkış yineleyici ifadesini * i = x uygulamak için kullanılan başvuru kaldırma işleci. |
operator++ | front_insert_iterator değerini bir değerin depolanabileceği bir sonraki konuma artırır. |
operator= | Ön ekleme için çıkış yineleyici ifadesini * i = x uygulamak için kullanılan atama işleci. |
Gereksinimler
Üst bilgi: <yineleyici>
Ad alanı: std
front_insert_iterator::container_type
Ön ekleme yapılacak kapsayıcıyı temsil eden bir tür.
typedef Container container_type;
Açıklamalar
Tür, Container şablon parametresinin eş anlamlısıdır.
Örnek
// 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
Belirtilen kapsayıcı nesnesinin önünde öğeler ekleyebilen bir yineleyici oluşturur.
explicit front_insert_iterator(Container& _Cont);
Parametreler
_Devam
öğesinin öğe eklediği front_insert_iterator
kapsayıcı nesnesi.
Dönüş Değeri
Parametre kapsayıcı nesnesi için A front_insert_iterator
.
Örnek
// 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*
Insert yineleyicisinin adreslediğinden döndüren öğeye başvurur.
front_insert_iterator<Container>& operator*();
Dönüş Değeri
üye işlevi, ele alınan öğenin değerini döndürür.
Açıklamalar
Çıkış yineleyici ifadesini *Yineleyici = değeri uygulamak için kullanılır. Bir dizideki bir öğeyi ele alan bir yineleyiciyseIter
, *Yineleyici = değeri bu öğeyi değerle değiştirir ve dizideki toplam öğe sayısını değiştirmez.
Örnek
// 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++
back_insert_iterator
değerini bir değerin depolanabileceği bir sonraki konuma artırır.
front_insert_iterator<Container>& operator++();
front_insert_iterator<Container> operator++(int);
Dönüş Değeri
Bir front_insert_iterator
değerin depolanabileceği sonraki konumu ele alan.
Açıklamalar
Hem preincrementation hem de postincrementation işleçleri aynı sonucu döndürür.
Örnek
// 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=
Kapsayıcının önüne bir değer ekler (iter).
front_insert_iterator<Container>& operator=(typename Container::const_reference val);
front_insert_iterator<Container>& operator=(typename Container::value_type&& val);
Parametreler
Val
Kapsayıcıya atanacak değer.
Dönüş Değeri
Kapsayıcının önüne eklenen son öğeye başvuru.
Açıklamalar
İlk üye işleci değerini değerlendirir container.push_front( val)
ve döndürür *this
.
İkinci üye işleci değerlendirir
container->push_front((typename Container::value_type&&) val)
,
ardından döndürür *this
.
Örnek
// 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
İlişkili kapsayıcı tarafından denetlenen bir dizi içindeki bir öğeye başvuru sağlayan bir tür.
typedef typename Container::reference reference;
Örnek
// 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.
*/
Ayrıca bkz.
<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu