итератор — приращение постфикса C ++ во время push_back списка

у меня есть код flush[*it % 4].push_back(*(it++) /= 4); и это было предназначено для push_back нового значения (старого значения / 4) перед увеличением итератора it, правильно ли это или как сделать это самым быстрым способом получить значение от итератора, разделить его на 4, сохранить его, использовать новое значение в push_back, а затем увеличить итератор?

-2

Решение

Это довольно противно. Есть ли it увеличивается до или после, *it % 4? Подсказка: он не определен, поэтому ваш код не имеет четко определенных результатов. Это очень плохо. Кроме того, это, как правило, беспорядок: вы сделали две операции чтения и записи в одну переменную, а также присваивание и вызов функции, а также индекс. Это много для одного выражения.

Используйте несколько утверждений для реализации вашей логики.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]