Какая операция в C++ быстрее?
Какая из двух операций выполнится быстрее:
++i;
i += 1;
Почему?
как говорил сам страуструп операция инкремента заменяется соответствующей операцией инкремента регистра если он содержит эту переменную или инкремент содержимого ячейки памяти нежели будет использована операция сложения
Современные компиляторы очень умные. Скорее всего, результат компиляции будет одинаковый.
Для глупого компилятора первый вариант лучше, поскольку есть машинная команда "увеличить на единицу". Однако, для современно процессора может и нет разницы между операциями inc и add. Первая лучше тем, что короче записывается.
хорошо если учли +/- 1 как inc / dec... А если упустили, то будут действовать по шаблону как говорил Великий Страуструп
У синтаксических конструкций скорость измерить нельзя так же как и у чисел или слов.
Это не операции а выражения состоящие из операторов и операндов которые должны компилироваться компилятором в машинные инструкции.
А уже при выполнении машиной инструкций можно измерить скорость.
Обычно компиляторы строят реляционную модель данных для выражений и блоков кода такая модель позволяет проводить оптимизации кода. И оператор "++i" в некоторых выражениях может оказаться без побочных эффектов с гораздо большей вероятностью чем другие способы инкрементирования данных из за приоритета выполнения операторов.
Приведенные выражения будут компилироваться в идентичные модели и компилироваться в идентичный код. Но в более сложных выражениях могут получиться более сложные модели.
Вообще говоря, зависит от компилятора и режима его работы, но в любом случае ++i предпочтительнее. А вот с i++ может быть по-разному :)
Разницы особо не будет. Ощутима будет немного если это будет использоваться в ряде циклов или структур данных и то при обращение системой к этому. В остальном скорость компиляции и обработки программы от этого не сильно поменяется а где то будет и вовсе одинаковой.
Сейчас на прямую машинным языком мало смысла писать. Компиляторы давно уже умеют более менее сносно оптимизировать код. А для сложных задач можно и самостоятельно пересобрать как тебе выгоднее.