Freigeben über


deque::insert

Fügt ein Element oder mehrere Elemente oder ein Bereich von Elementen in die Doppelschlange in einer angegebenen Position 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,
      InputIterator _First,
      InputIterator _Last
   );

Parameter

Parameter

Description

_Where

Die Position in der Zieldoppelschlange, in 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 im Bereich von Elementen in der Argumentdoppelschlange kopiert werden.

_Last

Die Position des ersten Elements über den Bereich von Elementen hinaus in der Argumentdoppelschlange kopiert werden.

Rückgabewert

Die ersten beiden insert-Funktionen geben einen Iterator zurück, der der Position zeigt, in der das neue Element in die Doppelschlange eingefügt wurde.

Hinweise

Jeder Einfügungsvorgang kann kostenintensiv 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 ( 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;
}

Output

[ 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

Anforderungen

Header: <deque>

Namespace: std

Siehe auch

Referenz

deque Class

deque::insert (STL Samples)

Standardvorlagenbibliothek