使用余数运算符很容易通过循环缓冲区向前迭代而不使用条件...
iterator = (iterator + 1) % buffer_size;
我不能为我的生活找出反向操作,向后迭代。
答案 0 :(得分:15)
iterator = (iterator + buffer_size - 1) % buffer_size
适合您吗?少走一步。
答案 1 :(得分:0)
Borealid的回答有效。 (注意:iterator
最初设置为0)。
另一种解决方案是
iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_size
最初将iterator
设置为buffer_size
。