Синтаксис:
#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