Перевод этой страницы?:

insert

Синтаксис:

    #include <deque>
    iterator insert( iterator loc, const T& val );
    void insert( iterator loc, size_type num, const T& val );
    template<T> void insert( iterator loc, input_iterator start, input_iterator end );

Метод insert:

  • вставляет val паред loc, возвращая итератор на вставленный элемент,
  • вставляет num копий переменной val перед loc, или
  • вставляет элементы начиная со start и заканчивая end перед loc.

Пример:

   // Создаем двустороннюю очередь, заполняем ее первыми 10 символами алфавита
   deque<char> alphaDeque;
   for( int i=0; i < 10; i++ ) {
     alphaDeque.push_back( i + 65 );
   }
 
   // вставляем четыре символа C в двустороннюю очередь
   deque<char>::iterator theIterator = alphaDeque.begin();
   alphaDeque.insert( theIterator, 4, 'C' );
 
   // Выводим на экран
   for( theIterator = alphaDeque.begin(); theIterator != alphaDeque.end(); theIterator++ ) {
     cout << *theIterator;
   }

Этот код выведет:

   CCCCABCDEFGHIJ

В следующем примере используется несколько разных методов добавления данных в двустороннюю очередь, а в конце - алгоритм копирования для вывода двусторонней очереди на экран:

   deque<int> dq;
   dq.push_back(42);
   dq.push_front(1);
   dq.insert( dq.begin()+1, 2 );
   dq[2] = 16;
   copy( dq.begin(), dq.end(), ostream_iterator<int>(cout," ") );  // выводит "1 2 16"

Смотри также: assign, erase, push_back, push_front, copy