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


list::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,
      InputIterator _First,
      InputIterator _Last
   );

Параметры

Параметр

Описание

_Where

Позиция в списке целевого объекта, где первый элемент вставляется.

_Val

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

_Count

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

_First

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

_Last

Позиция первого элемента после конца диапазона элементов в списке аргументов необходимо скопировать.

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

Первые 2 insert функции возвращают итератор, который указывает на месте, куда был вставлен новый элемент в список.

Пример

// 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 ( 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 list of strings by moving
   list < string > c2;
   string str("a");

   c2.insert( c2.begin(), move( str ) );
   cout << "Moved first element: " << c2.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

Требования

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

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

См. также

Ссылки

list Class

list::insert (STL Samples)

Стандартная библиотека шаблонов