剰余演算子を使用すると、条件を使用せずに循環バッファーを順方向に反復するのは簡単です。
iterator = (iterator + 1) % buffer_size;
私は一生の間、逆の操作を理解することができず、逆方向に繰り返します。
剰余演算子を使用すると、条件を使用せずに循環バッファーを順方向に反復するのは簡単です。
iterator = (iterator + 1) % buffer_size;
私は一生の間、逆の操作を理解することができず、逆方向に繰り返します。
あなたiterator = (iterator + buffer_size - 1) % buffer_size
のために働きますか?ずっと1つ少なく行きます。
Borealidの答えは機能します。(注:iterator
最初は0に設定されています)。
別の解決策は
iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_size
最初
にiterator
設定します。buffer_size