deque::insert
Insère un élément ou un nombre d'éléments ou une plage d'éléments dans le deque à un emplacement spécifié.
iterator insert(
const_iterator Where,
const Type& Val
);
iterator insert(
const_iterator Where,
Type&& Val
);
void insert(
iterator Where,
size_type Count,
const Type& Val
);
template<class InputIterator>
void insert(
iterator Where,
InputIteratorFirst,
InputIteratorLast
);
iterator insert(
iterator Where,
initializer_list<Type> IList
);
Paramètres
Paramètre |
Description |
Where |
La position, dans le deque cible, où l'élément est inséré. |
Val |
La valeur de l'élément en train d'être inséré dans le deque. |
Count |
Le nombre d'éléments à insérer dans le deque. |
First |
La position du premier élément dans la plage d'éléments à copier depuis le deque d'argument. |
Last |
La position du premier élément après la plage d'éléments à copier depuis le deque d'argument. |
IList |
L'initializer_list des éléments à insérer. |
Valeur de retour
Les deux premières fonctions d'insertion retournent un itérateur qui indique la position où le nouvel élément a été inséré dans le deque.
Notes
Toute opération d'insertion peut être coûteuse.
Code
// deque_insert.cpp
// compile with: /EHsc
#include <deque>
#include <iostream>
#include <string>
int main()
{
using namespace std;
deque <int> c1, c2;
deque <int>::iterator Iter;
c1.push_back(10);
c1.push_back(20);
c1.push_back(30);
c2.push_back(40);
c2.push_back(50);
c2.push_back(60);
cout << "[ c1 = ";
for (auto c1_iter : c1)
cout << c1_iter << " ";
cout << "]" << endl;
Iter = c1.begin();
Iter++;
c1.insert(Iter, 100);
cout << "[ c1 = ";
for (auto c1_iter : c1)
cout << c1_iter << " ";
cout << "]" << endl;
Iter = c1.begin();
Iter++;
Iter++;
c1.insert(Iter, 2, 200);
cout << "[ c1 = ";
for (auto c1_iter : c1)
cout << c1_iter << " ";
cout << "]" << endl;
c1.insert(++c1.begin(), c2.begin(), --c2.end());
cout << "[ c1 = ";
for (auto c1_iter : c1)
cout << c1_iter << " ";
cout << "]" << endl;
// initialize a deque of strings by moving
deque < string > c3;
string str("a");
c3.insert(c3.begin(), move(str));
cout << "Moved first element: " << c3.front() << endl;
c1.insert(c1.end(), { 70, 80, 90 });
for (auto c1_iter : c1)
cout << c1_iter << " ";
cout << endl;
}// deque_insert.cpp
// compile with: /EHsc
#include <deque>
#include <iostream>
#include <string>
int main( )
{
using namespace std;
deque <int> c1, c2;
deque <int>::iterator Iter;
c1.push_back( 10 );
c1.push_back( 20 );
c1.push_back( 30 );
c2.push_back( 40 );
c2.push_back( 50 );
c2.push_back( 60 );
cout << "[ c1 = ";
for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
cout << *Iter << " ";
cout << "]" << endl;
Iter = c1.begin( );
Iter++;
c1.insert( Iter, 100 );
cout << "[ c1 = ";
for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
cout << *Iter << " ";
cout << "]" << endl;
Iter = c1.begin( );
Iter++;
Iter++;
c1.insert( Iter, 2, 200 );
cout << "[ c1 = ";
for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
cout << *Iter << " ";
cout << "]" << endl;
c1.insert( ++c1.begin( ), c2.begin( ),--c2.end( ) );
cout << "[ c1 = ";
for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
cout << *Iter << " ";
cout << "]" << endl;
// initialize a deque of strings by moving
deque < string > c3;
string str("a");
c3.insert( c3.begin(), move( str ) );
cout << "Moved first element: " << c3.front( ) << endl;
}
Sortie
[ c1 = 10 20 30 ]
[ c1 = 10 100 20 30 ]
[ c1 = 10 100 200 200 20 30 ]
[ c1 = 10 40 50 100 200 200 20 30 ]
Moved first element: a
10 40 50 100 200 200 20 30 70 80 90
Configuration requise
En-tête: <deque>
Espace de noms : std