arrays - 反循环缓冲区

标签 arrays algorithm iterator buffer

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

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

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

我知道它可以在有条件的情况下完成,但我确信有一个公式可以更快更干净地完成它。

我需要它在最后无限遍历对象数组。

抱歉我的英语不好。

最佳答案

尝试

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

它不会比 if..else 结构更有效(甚至与它一样有效),但它类似于用于向正方向移动的单行赋值方向。

关于arrays - 反循环缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8287652/

相关文章:

python - 使用生成器分块读取 CSV 文件

python - __iter__ 是如何工作的?

java - int[] []x[] 如何成为 Java 中的合法数组声明?

ios - 如何获取枚举对象

algorithm - 如何有效地从 Fenwick 树中找到连续范围的已用/空闲槽

algorithm - 使用深度的树的高度

c++ - 如何访问 std::list 的第一个元素?

javascript - NodeJS 中奇怪的数组行为

arrays - 两个总和 : Elements in 2 arrays equal predetermined Sum Swift 3

python - 随机移动 Python 列表中一定数量的项目