На этом шаге мы  перечислим основные операции над деками.
В таблицах 1 - 3 перечислены все операции, поддерживаемые деками.
| Операция | Описание | 
|---|---|
| deque<Elem> с | Создает пустой дек, не содержащий ни одного элемента | 
| deque<Elem> с1(c2) | Создает копию другого дека того же типа (с копированием всех элементов) | 
| deque<Elem> c(n) | Создает дек из n элементов, создаваемых конструктором по умолчанию | 
| deque<Elem> c(n,elem) | Создает дек, инициализируемый n копиями эпемента elem | 
| deque<Elem> c(beg,end) | Создает дек, инициализируемый элементами интервала [beg,end) | 
| c.~deque<Elem>() | Уничтожает все элементы и освобождает память | 
| Операция | Описание | 
|---|---|
| c.size() | Возвращает фактическое количество элементов | 
| c.empty() | Проверяет, пуст ли контейнер (эквивалент size()==0, но иногда выполняется быстрее) | 
| c.max_size() | Возвращает максимально возможное количество элементов | 
| c1 == c2 | Проверяет равенство c1 и с2 | 
| c1 != c2 | Проверяет неравенство c1 и с2 (эквивалент !(c1==c2)) | 
| c1 < с2 | Проверяет, что c1 меньше с2 | 
| c1 > с2 | Проверяет, что c1 больше с2 (эквивалент c2<c1) | 
| c1 <= с2 | Проверяет, что c1 не больше с2 (эквивалент !(c2<c1)) | 
| c1 >= с2 | Проверяет, что c1 не меньше с2 (эквивалент !(с1<с2)) | 
| c.at(idx) | Возвращает элемент с индексом idx (при недопустимом значении индекса генерируется исключение out_of_range) | 
| c[idx] | Возвращает элемент с индексом idx (без интервальной проверки!) | 
| c.front() | Возвращает первый элемент (без проверки его существования!) | 
| c.back() | Возвращает последний элемент (без проверки его существования!) | 
| c.rbegin() | Возвращает обратный итератор для первого элемента при переборе в обратном направлении | 
| c.rend() | Возвращает обратный итератор для позиции за последним элементом при переборе в обратном направлении | 
| Операция | Описание | 
|---|---|
| c1 = c2 | Присваивает c1 все элементы с2 | 
| c.assign(n,elem) | Присваивает n копий элемента elem | 
| c.assign(beg,end) | Присваивает элементы интервала [beg,end) | 
| c1.swap(c2) | Меняет местами содержимое c1 и с2 | 
| swap(c1,c2) | To же, но в форме глобальной функции | 
| c.insert(pos,elem) | Вставляет копию elem в позицию итератора pos и возвращает позицию нового элемента | 
| c.insert(pos,n,elem) | Вставляет n копий elem в позицию итератора pos (и не возвращает значения) | 
| c.insert(pos,beg,end) | Вставляет в позицию итератора pos копию всех элементов интервала [beg,end) (и не возвращает значения) | 
| c.push_back(elem) | Присоединяет копию elem в конец дека | 
| c.pop_back() | Удаляет последний элемент (не возвращая его) | 
| c.push_front(elem) | Вставляет копию elem в начало дека | 
| c.pop_front() | Удаляет первый элемент (не возвращая его) | 
| c.erase(pos) | Удаляет элемент в позиции итератора pos и возвращает позицию следующего элемента | 
| c.erase(beg,end) | Удаляет все элементы из интервала [beg,end) и возвращает позицию следующего элемента | 
| c.resize(num) | Приводит контейнер к размеру num (если size() при этом увеличивается, новые элементы создаются своим конструктором по умолчанию) | 
| c.resize(num,elem) | Приводит контейнер к размеру num (если size() при этом увеличивается, новые элементы создаются как копии elem) | 
| c.clear() | Удаляет все элементы (контейнер остается пустым) | 
Операции деков отличаются от операций векторов только в следующих отношениях:
Поскольку остальные операции остались без изменений, здесь они не рассматриваются. За описаниями обращайтесь на 131 шаг.
При работе с деками необходимо учитывать следующее.
На следующем шаге мы рассмотрим обработку исключений в деках.