Aracılığıyla paylaş


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_iteratortarafı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_iteratorbirlikte 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