使用 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这些值,当您查找索引时。
假设我使用数组实现了一个循环队列。我如何计算队列的大小?我所说的尺寸是指前后之间的元素数量。我想用模运算。
我有数组的容量,还有队列的前排和后排的位置。我现在不知道怎么办。
How could I calculate the size of the queue?
我会用
size = (start - end + mod) % mod;
这假设缓冲区永远不会完全满负荷。一种替代方法是使用没有 modding
的开始和结束size = lastWriteIndex - nextReadIndex;
您可以mod这些值,当您查找索引时。