я не очень разбираюсь в программировании алгоритмов основ, так что вот моя проблема. Я хочу создать алгоритм, который может заполнять круговой буфер, но он должен начинаться в конце буфера. Я пытаюсь сделать это уже много часов без успеха, поэтому прошу вашей помощи.
Я знаю исходный алгоритм, который начинается с начала буфера: i = (i+1)%buffLen
Но я хочу что-то, что поместит что-то из buffLen-1 в 0, и когда оно достигнет 0, оно начнется с buffLen-1.
Я знаю, что это можно сделать с условием, но я уверен, что есть формула, чтобы сделать это быстрее и чище.
Мне нужно, чтобы он бесконечно перебирал массив объектов к концу.
Извините за мой плохой английский.
if (i == (bufLen - 1)) i = 0
. в чем проблема с этим? (кстати, вы являетесь прекрасным примером того, насколько загадочной была бы такая формула: вы сказали, что знаете, как это сделать сif
, но не можете найти эквивалентное выражение с модульной арифметикой самостоятельно...) - person Bruno Reis   schedule 27.11.2011