Compartilhar via


deque::insert

Insere um elemento ou um número de elementos ou um intervalo dos elementos no deque em uma posição especificada.

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

Parâmetros

Parâmetro

Descrição

Where

A posição em deque de destino onde o primeiro elemento é inserido.

Val

O valor do elemento a ser inserido em deque.

Count

O número de elementos que estão sendo inseridos em deque.

First

A posição do primeiro elemento no intervalo dos elementos no deque do argumento ser copiado.

Last

A posição do primeiro elemento além do intervalo dos elementos no deque do argumento ser copiado.

IList

O initializer_list de elementos a ser inserido.

Valor de retorno

As primeiras duas funções de inserção retornam um iterador que aponta para a posição na qual o novo elemento foi inserido em deque.

Comentários

Qualquer operação de inserção pode ser dispendiosa.

Código

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

Saída

[ 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

Requisitos

Cabeçalho: <deque>

Namespace: std

Consulte também

Referência

Classe deque

deque::insert (Exemplos de STL)

Biblioteca de Modelos Padrão