(PECL ds >= 1.0.0)
Um Deque (pronunciado "deck") é uma sequência de valores em um buffer contíguo que cresce e diminui automaticamente. O nome é uma abreviação comum de "double-ended queue" e é usado internamente por Ds\Queue.
Dois ponteiros são usados para acompanhar um head e um tail. Os ponteiros podem "envolver" a extremidade do buffer, o que evita a necessidade de mover outros valores para criar espaço. Isso torna shift e unshift muito rápidos — algo que um Ds\Vector não pode competir.
Acesso a um valor pelo índice requer uma tradução entre o índice e sua
posição correspondente no buffer: ((head + position) % capacity)
.