deque::insert
Fügt ein Element oder mehrere Elemente oder ein Reihe von Elementen an einer bestimmten Position in die Doppelschlange ein.
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
);
Parameter
Parameter |
Beschreibung |
Where |
Die Position in der Zieldoppelschlange, an der das erste Element eingefügt wird. |
Val |
Der Wert des Elements, das in die Doppelschlange eingefügt wird. |
Count |
Die Anzahl von Elementen, die in die Doppelschlange eingefügt werden. |
First |
Die Position des ersten Elements in dem Elementbereich in der Argumentdoppelschlange, die kopiert werden soll. |
Last |
Die Position des ersten Elements hinter dem Elementbereich in der Argumentdoppelschlange, die kopiert werden soll. |
IList |
Das initializer_list-Element der einzufügenden Elemente. |
Rückgabewert
Die ersten zwei Einfügefunktionen geben ein Iterator zurück, der auf den Speicherort zeigt, an dem das neue Element in die Doppelschlange eingefügt wurde.
Hinweise
Jeder Einfügevorgang kann ressourcenintensiv sein.
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;
}
Ausgabe
[ 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
Anforderungen
Header: <deque>
Namespace: std