Итак, у меня есть следующий вектор:
vector<int> vec = {2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9};
У меня есть смещение значения, которое начинается с 0:
int offset = 0;
Я хочу пройти через массив и изменить смещениезначение соответственно.Например, если мы начали в начале (в первых 2), я хочу
offset = 0;
А затем, когда он прибывает во вторые 2, я хочу
offset = -16;
Но раз я вижу, что значение массива больше не равно 2 (оно изменяется), я хочу, чтобы смещение сбрасывалось до 0 (а затем, если оно увидит следующие 3, оно станет offset = offset - 16
).
Я хочупродолжать вычитать 16 из моего значения смещения до тех пор, пока значение в векторе не изменится, пока я перебираю его.Но как только я обнаружу изменение, я хочу сбросить смещение.
Каков наилучший способ сделать это?