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