(PECL ds >= 1.0.0)
Двухсторонняя очередь — последовательность значений в непрерывном буфере, который растёт и уменьшаются автоматически. Deque (произносится как «deck») — аббревиатура от «double-ended queue» и используется внутри структуры Ds\Queue.
Для отслеживания начала и конца используются два указателя. Указатели могут «обтекать» конец буфера, что помогает избежать перемещения значений для освобождения места. Это делает операции shift и unshift такими быстрыми, что структура Ds\Vector не может с этим соперничать.
Доступ к элементу по индексу требует пересчёта в зависимости от его индекса в буфере:
((head + position) % capacity)
.