En cirkulär buffert är en array med fast storlek som behandlas som om dess ändar är sammanslutna i en ring. Två index — head (läsning) och tail (skrivning) — framåtgår och lindas runt med moduloaritmetik, vilket ger en O(1) FIFO-kö utan allokeringar efter skapandet.
Hur lindning fungerar
text
capacity 5, after writing A,B,C,D and reading A,B:
index: 0 1 2 3 4
[ . ][ . ][ C ][ D ][ . ]
head^ tail^ (tail wraps to 0 next write)
