Udostępnij za pośrednictwem


deque::insert

Wstawia element, kilka elementów lub zakres elementów do kolejki dwukierunkowej w określonym położeniu.

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
);

Parametry

Parametr

Opis

Where

Pozycja na docelowej kolejce dwukierunkowej, na którą ma być wstawiony pierwszy element.

Val

Wartość elementu, który jest wstawiany na kolejkę dwukierunkową.

Count

Liczba elementów, które są wstawiane na kolejkę dwukierunkową.

First

Pozycja pierwszego elementu w zakresie elementów na kolejce dwukierunkowej argumentów do skopiowania.

Last

Pozycja pierwszego elementu poza zakresem elementów na kolejce dwukierunkowej argumentów do skopiowania.

IList

Initializer_list elementów do wstawienia.

Wartość zwracana

Pierwsze dwie funkcje wstawiające zwracają iterator, który wskazuje pozycję, na którą został wstawiony element w kolejce dwukierunkowej.

Uwagi

Każda operacja wstawiania może być kosztowna.

Kod

// 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;
}

Dane wyjściowe

[ 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

Wymagania

Nagłówek: <deque>

Przestrzeń nazw: std

Zobacz też

Informacje

deque — Klasa

deque::insert (STL — Przykłady)

Standardowa biblioteka szablonów