Поделиться через


list::insert

Вставляет элемент или количество элементов или диапазон элементов в указанное положение в списке.

iterator insert(     iterator Where,     const Type& Val ); iterator insert(     iterator Where,     Type&& Val ); void insert(     iterator Where,     size_type Count,     const Type& Val ); iterator insert(     iterator Where,     initializer_list<Type> IList ); template<class InputIterator>     void insert(         iterator Where,         InputIterator First,         InputIterator Last     );

Параметры

Параметр

Описание

Where

Положение в целевом списке, куда вставляется первый элемент.

Val

Значение элемента, вставляемого в список.

Count

Количество элементов, вставляемых в список.

First

Положение первого элемента в диапазоне элементов в копируемом списке аргументов.

Last

Положение первого элемента после диапазона элементов в копируемом списке аргументов.

Возвращаемое значение

Две первые функции вставки возвращают итератор, указывающий на положение вставки нового элемента в список.

Пример

// list_class_insert.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main()
{
    using namespace std;
    list <int> c1, c2;
    list <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 c : c1)
        cout << " " << c;
    cout << endl;

    Iter = c1.begin();
    Iter++;
    c1.insert(Iter, 100);
    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    Iter = c1.begin();
    Iter++;
    Iter++;
    c1.insert(Iter, 2, 200);

    cout << "c1 =";
    for(auto c : c1)
        cout << " " << c;
    cout << endl;

    c1.insert(++c1.begin(), c2.begin(), --c2.end());

    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    // initialize a list of strings by moving
    list < string > c3;
    string str("a");

    c3.insert(c3.begin(), move(str));
    cout << "Moved first element: " << c3.front() << endl;

    // Assign with an initializer_list
    list <int> c4{ {1, 2, 3, 4} };
    c4.insert(c4.begin(), { 5, 6, 7, 8 });

    cout << "c4 =";
    for (auto c : c4)
        cout << " " << c;
    cout << endl;
}

Вывод

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 Перемещенный первый элемент: ac4 = 5 6 7 8 1 2 3 4

Требования

Заголовок: <list>

Пространство имен: std

См. также

Ссылки

Класс list

Библиотека стандартных шаблонов