如何在没有条件的情况下在循环缓冲区上向后迭代?

如何在没有条件的情况下在循环缓冲区上向后迭代?

问题描述:

通过不使用条件的循环缓冲区向前迭代很容易与其余操作...如何在没有条件的情况下在循环缓冲区上向后迭代?

iterator = (iterator + 1) % buffer_size;

我不能为我的生活出了反向操作,向后遍历。

+1

它不是简单的,'buffer_size - (iterator + 1)%buffer_size - 1'? – Anycorn 2010-08-09 05:13:03

请问iterator = (iterator + buffer_size - 1) % buffer_size是否适合您?走一条路,一路走来走去。

Borealid的答案有效。 (注意:iterator最初设置为0)。

另一种解决方案是

iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_sizeiterator集到buffer_size最初。