反循环缓冲区

时间:2011-11-27 17:54:32

标签: arrays algorithm iterator buffer

我不是真的进入基础算法编程,所以这是我的问题。我想创建一个可以填充循环缓冲区的算法,但它必须从缓冲区的末尾开始。我试图这么做几个小时没有成功,所以我请求你的帮助。

我知道从缓冲区开始的原始算法:     i =(i + 1)%buffLen

但是我想要一些从buffLen-1到0的东西,当它达到0时,它从buffLen-1开始。

我知道这可以通过一个条件来完成,但我确信有一个公式可以更快更清洁。

我需要它在最后通过一组对象无限地迭代。

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

尝试

i = (i + buffLen - 1) % buffLen;

它不会比if..else构造更有效(或者甚至效率更高),但它是向正向移动的单行分配的模拟。