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

Двусторонние Очереди C++

Двусторонние очереди (или deques) аналогичны векторам, с той разницей, что они позволяют быстро вставлять и удалять элементы и с начала, и с конца контейнера.

Двусторонние очереди C++ обычно реализовываются как динамические массивы, растущие в оба конца. Такая реализация гарантирует доступ за константное время, вставку и удаление с обоих концов очереди - за амортизированное константное время, вставку и удаление из середины очереди - за линейное время.

Конструкторысоздают двустороннюю очередь и инициализируют ее какими-то данными
Операторыосуществляют сравнение, присваивание и доступ к элементам двусторонней очереди
assignприсваивает элементы двусторонней очереди
atвозвращает элемент в заданной позиции
backвозвращает ссылку на последний элемент двусторонней очереди
beginвозвращает итератор на начало двусторонней очереди
clearудаляет все элементы из двусторонней очереди
emptyистина, если двусторонняя очередь пуста
endвозвращает итератор на место после последнего элемента двусторонней очереди
eraseудаляет заданные элементы из двусторонней очереди
frontвозвращает ссылку на первый элемент двусторонней очереди
insertвставляет элементы в двусторонней очереди
max_sizeвозвращает максимальное число элементов, которое может содержать двусторонняя очередь
pop_backудаляет последний элемент двусторонней очереди
pop_frontудаляет первый элемент двусторонней очереди
push_backдобавляет элемент в конец двусторонней очереди
push_frontдобавляет элемент в начало двусторонней очереди
rbeginвозвращает reverse_iterator на конец двусторонней очереди
rendвозвращает reverse_iterator на начало двусторонней очереди
resizeизменяет размер двусторонней очереди
sizeвозвращает количество элементов в двусторонней очереди
swapменяется содержимым данной двусторонней очереди с другой

Замечания

К сожалению, в русском языке нет такого же емкого и краткого названия для двусторонней очереди, как в английском. Возможно, стоит подумать над дсочередью, дочередью или даже дочерью. В оригинале же название deque произносится как «deck», это сокращение от «double-ended queue.» Кнут сообщает, что такое же имя было придумано Е. Д. Швеппе. См. параграф 2.2.1 из книги Кнута для дальнейшей информации о двусторонних очередях. (D. E. Knuth, The Art of Computer Programming. Volume 1: Fundamental Algorithms, second edition. Addison-Wesley, 1973.)