Как вы повторяете обратный круговой буфер без условного? Итерация вперед через круговой буфер без использования условного просто с оператором остатка... iterator = (iterator + 1) % buffer_size; Я не могу, чтобы жизнь меня определяла обратную операцию, итерацию назад. Ответ 1 Работает ли iterator = (iterator + buffer_size - 1) % buffer_size для вас? Идите на один меньше, чем все вокруг. Ответ 2 Работа с бореальными ответами. (примечание: iterator сначала установлено на 0). Другим решением является iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_size с iterator в начале buffer_size.
Ответ 1 Работает ли iterator = (iterator + buffer_size - 1) % buffer_size для вас? Идите на один меньше, чем все вокруг.
Ответ 2 Работа с бореальными ответами. (примечание: iterator сначала установлено на 0). Другим решением является iterator = buffer_size - 1 - (buffer_size - iterator) % buffer_size с iterator в начале buffer_size.