back_insert_iterator Sınıfı

Çıkış yineleyici gereksinimlerini karşılayan bir yineleyici bağdaştırıcısını açıklar. Bu öğeleri eklemek yerine bir dizinin arka ucunun üzerine yazar ve bu nedenle C++ dizi kapsayıcılarının yineleyiciler tarafından sağlanan üzerine yazma semantiklerinden farklı semantikler sağlar. back_insert_iterator sınıfı kapsayıcı türüne göre ayarlı hale getirilir.

Sözdizimi

template <class Container>
class back_insert_iterator;

Parametreler

Kapsayıcı
Öğesinin bir tarafından back_insert_iteratoreklendiği arkadaki kapsayıcı türü.

Açıklamalar

Kapsayıcının itfa edilecek sabit sürede dizininin sonuna öğe eklemenin mümkün olduğu geri ekleme dizisinin gereksinimlerini karşılaması gerekir. Deque Sınıfı, liste Sınıfı ve vektör Sınıfı tarafından tanımlanan C++ Standart Kitaplık dizisi kapsayıcıları gerekli push_back üye işlevini sağlar ve bu gereksinimleri karşılar. Bu üç kapsayıcı ve dizenin her biri s ile back_insert_iteratorkullanılacak şekilde uyarlanabilir. her back_insert_iterator zaman kapsayıcısıyla başlatılmalıdır.

Oluşturucular

Oluşturucu Açıklama
back_insert_iterator Kapsayıcıdaki back_insert_iterator son öğeden sonra öğe ekleyen bir oluşturur.

Tür tanımları

Tür adı Açıklama
container_type için back_insert_iteratorkapsayıcı sağlayan bir tür.
referans için back_insert_iteratorbaşvuru sağlayan bir tür.

İşleçler

Operator Açıklama
operatör* Geri ekleme için çıkış yineleyici ifadesini * i = x uygulamak için kullanılan başvuru kaldırma işleci.
operator++ back_insert_iterator değerini bir değerin depolanabileceği bir sonraki konuma artırır.
operator= Geri ekleme için çıkış yineleyici ifadesini * i = x uygulamak için kullanılan atama işleci.

Gereksinimler

Üst bilgi: <yineleyici>

Ad alanı: std

back_insert_iterator::back_insert_iterator

Kapsayıcıdaki back_insert_iterator son öğeden sonra öğe ekleyen bir oluşturur.

explicit back_insert_iterator(Container& _Cont);

Parametreler

_Devam
back_insert_iterator öğesi eklemek için kapsayıcı.

Dönüş Değeri

Parametre kapsayıcısı için A back_insert_iterator .

Örnek

// back_insert_iterator_back_insert_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for ( i = 1 ; i < 4 ; ++i )
   {
      vec.push_back ( i );
   }

   vector <int>::iterator vIter;
   cout << "The initial vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   // Insertions with member function
   back_inserter ( vec ) = 40;
   back_inserter ( vec ) = 50;

   // Alternatively, insertions can be done with template function
   back_insert_iterator<vector<int> > backiter ( vec );
*backiter = 600;
   backiter++;
*backiter = 700;

   cout << "After the insertions, the vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}
The initial vector vec is: ( 1 2 3 ).
After the insertions, the vector vec is: ( 1 2 3 40 50 600 700 ).

back_insert_iterator::container_type

için back_insert_iteratorkapsayıcı sağlayan bir tür.

typedef Container
container_type;

Açıklamalar

Tür, Container şablon parametresinin eş anlamlısıdır.

Örnek

// back_insert_iterator_container_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 1 ; i < 4 ; ++i )
   {
      vec.push_back (  i );
   }

   vector <int>::iterator vIter;
   cout << "The original vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   back_insert_iterator<vector<int> >::container_type vec1 = vec;
   back_inserter ( vec1 ) = 40;

   cout << "After the insertion, the vector is: ( ";
   for ( vIter = vec1.begin ( ) ; vIter != vec1.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}
The original vector vec is: ( 1 2 3 ).
After the insertion, the vector is: ( 1 2 3 40 ).

back_insert_iterator::operator*

Çıkış yineleyici ifadesini uygulamak için kullanılan başvuru kaldırma işleci * i = x.

back_insert_iterator<Container>& operator*();

Dönüş Değeri

Kapsayıcının arkasına eklenen öğeye başvuru.

Açıklamalar

Çıkış yineleyici ifadesini *Yineleyici = değeri uygulamak için kullanılır. Yineleyici bir dizideki bir öğeyi ele alan bir yineleyiciyse, *Yineleyici = değeri bu öğeyi değerle değiştirir ve dizideki öğelerin toplam sayısını değiştirmez.

Örnek

// back_insert_iterator_back_insert.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 1 ; i < 4 ; ++i )
   {
      vec.push_back ( i );
   }

   vector <int>::iterator vIter;
   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   back_insert_iterator<vector<int> > backiter ( vec );
*backiter = 10;
   backiter++;      // Increment to the next element
*backiter = 20;
   backiter++;

   cout << "After the insertions, the vector vec becomes: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}
The vector vec is: ( 1 2 3 ).
After the insertions, the vector vec becomes: ( 1 2 3 10 20 ).

back_insert_iterator::operator++

back_insert_iterator değerini bir değerin depolanabileceği bir sonraki konuma artırır.

back_insert_iterator<Container>& operator++();
back_insert_iterator<Container> operator++(int);

Dönüş Değeri

Bir back_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

// back_insert_iterator_op_incre.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 1 ; i < 3 ; ++i )
   {
      vec.push_back ( 10 * i );
   }

   vector <int>::iterator vIter;
   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   back_insert_iterator<vector<int> > backiter ( vec );
*backiter = 30;
   backiter++;      // Increment to the next element
*backiter = 40;
   backiter++;

   cout << "After the insertions, the vector vec becomes: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}
The vector vec is: ( 10 20 ).
After the insertions, the vector vec becomes: ( 10 20 30 40 ).

back_insert_iterator::operator=

Kapsayıcının arka ucuna bir değer ekler veya gönderir.

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

Parametreler

Val
Kapsayıcıya eklenecek değer.

Dönüş Değeri

Kapsayıcının arkasına eklenen son öğeye başvuru.

Açıklamalar

İlk üye işleci değerini değerlendirir Container.push_back( val).

ardından döndürür *this. İkinci üye işleci değerlendirir

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

ardından döndürür *this.

Örnek

// back_insert_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 1 ; i < 4 ; ++i )
   {
      vec.push_back ( i );
   }

   vector <int>::iterator vIter;
   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   back_insert_iterator<vector<int> > backiter ( vec );
*backiter = 10;
   backiter++;      // Increment to the next element
*backiter = 20;
   backiter++;

   cout << "After the insertions, the vector vec becomes: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;
}

back_insert_iterator::reference

için back_insert_iteratorbaşvuru sağlayan bir tür.

typedef typename Container::reference reference;

Açıklamalar

türü, ilişkili kapsayıcı tarafından denetlenen sıranın bir öğesine başvuruyu açıklar.

Örnek

// back_insert_iterator_reference.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 1 ; i < 4 ; ++i )
   {
      vec.push_back ( i );
   }

   vector <int>::iterator vIter;
   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   back_insert_iterator<vector<int> >::reference
        RefLast = *(vec.end ( ) - 1 );
   cout << "The last element in the vector vec is: "
        << RefLast << "." << endl;
}
The vector vec is: ( 1 2 3 ).
The last element in the vector vec is: 3.

Ayrıca bkz.

<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu