Freigeben über


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

Siehe auch

Referenz

deque-Klasse

deque::insert (STL-Beispiele)

Standardvorlagenbibliothek