共用方式為


deque::insert

在指定的位置,將一個項目、多個項目或項目範圍插入雙向佇列中。

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

參數

參數

說明

Where

目標雙向佇列中第一個項目插入的位置。

Val

插入於雙向佇列中之項目的值。

Count

插入雙向佇列中的項目數目。

First

在要從引數雙向佇列中複製之項目範圍中第一個項目的位置。

Last

在要從引數雙向佇列中複製之項目範圍之外第一個項目的位置。

IList

項目插入的 initializer_list。

傳回值

前兩個插入函式傳回指向插入新項目到雙向佇列的位置的 Iterator。

備註

所有插入作業可能會耗用相當多的資源。

程式碼

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

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
10 40 50 100 200 200 20 30 70 80 90

需求

標頭: <deque>

命名空間: std

請參閱

參考

deque 類別

deque::insert (STL 範例)

標準樣板程式庫