(Информация о версии неизвестна, возможно, только в SVN)
Двухсторонняя очередь - это последовательность значений в непрерывном буфере, который растет и обрезается автоматически. Deque (произносится как "deck") является аббривиатурой от "double-ended queue". Используется внутри Ds\Queue.
Два указателя используются для отслеживания начала и конца. Указатели могут "пробегать по кругу" от конца очереди, что позволяет избежать перемещения значений для освобождения места. Это делает операции shift и unshift такими быстрыми, что Ds\Vector вектор не может с ней соперничать.
Доступ к элементу по индексу требует пересчета в зависимости от его индекса в буфере:
((head + position) % capacity)
.
Ds\Deque::MIN_CAPACITY