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_iterator
eklendiğ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_iterator
kullanı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_iterator kapsayıcı sağlayan bir tür. |
referans | için back_insert_iterator baş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_iterator
kapsayı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_iterator
baş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