Здравствуйте, Sm0ke, Вы писали:
S>Мне интересно почему for + div() медленнее, чем for?
S>Ведь казалось бы мы делаем две операции (деление и остаток) за одну инструкцию. Но видимо в std накосячили и что-то пошло не так. Или вообще что случилось?
сделал маленький рефакторинг
https://godbolt.org/z/1aW4zzvoY
Получил
mcq: 52ms
for_loop: 45ms
algo: 45ms
for_loop_div: 252ms
algo_div: 345ms
с std::div реально какая-то шляпа. Меняю на my_div — все значения в пределах погрешности.
в итоге, если отбросить аномалию с std::div, то можно сказать, что результаты примерно одинаковые