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