使用 mod 的循环队列大小

Circular queue size using mod

假设我使用数组实现了一个循环队列。我如何计算队列的大小?我所说的尺寸是指前后之间的元素数量。我想用模运算。

我有数组的容量,还有队列的前排和后排的位置。我现在不知道怎么办。

How could I calculate the size of the queue?

我会用

size = (start - end + mod) % mod;

这假设缓冲区永远不会完全满负荷。一种替代方法是使用没有 modding

的开始和结束
size = lastWriteIndex - nextReadIndex;

您可以mod这些值,当您查找索引时。