13

剰余演算子を使用すると、条件を使用せずに循環バッファーを順方向に反復するのは簡単です。

iterator = (iterator + 1) % buffer_size;

私は一生の間、逆の操作を理解することができず、逆方向に繰り返します。

4

2 に答える 2

17

あなたiterator = (iterator + buffer_size - 1) % buffer_sizeのために働きますか?ずっと1つ少なく行きます。

于 2010-08-09T05:16:54.700 に答える
0

Borealidの答えは機能します。(注:iterator最初は0に設定されています)。

別の解決策は

iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_size最初 にiterator設定します。buffer_size

于 2010-08-09T06:51:06.267 に答える