Цитируя:
http://www.parashift.com/c++-faq/increment-pre-post-speed.html
++ я иногда быстрее, и никогда не медленнее, чем, я ++.
Для встроенных типов, таких как int, это не имеет значения: ++ i и i ++ имеют одинаковую скорость. Для типов классов, таких как итераторы, ++ i очень хорошо может быть быстрее, чем i ++, поскольку последний может сделать копию этого объекта.
Накладные расходы i ++, если они есть вообще, вряд ли будут иметь практическое значение, если ваше приложение не связано с ЦП. Например, если ваше приложение проводит большую часть своего времени, ожидая, что кто-то щелкнет мышью, выполнив операции ввода-вывода на базе ввода-вывода, сетевого ввода-вывода или базы данных, это не повредит вашей производительности, чтобы тратить несколько циклов процессора. Однако так же легко набрать ++ i как i ++, так почему бы не использовать первое, если вам действительно не нужно старое значение i.
Итак, если вы пишете i ++ в качестве утверждения, а не как часть более крупного выражения, почему бы не просто написать ++ i вместо этого? Вы никогда ничего не теряете, и иногда получаете что-то. Программисты Old line C используются для записи i ++ вместо ++ i. Например., Они скажут,
for (i = 0; i < 10; i++) ....
Поскольку это использует я ++ как утверждение, а не как часть большего выражения, то вы можете использовать ++ я вместо этого. Для симметрии я лично защищаю этот стиль, даже если он не улучшает скорость, например, для внутренних типов и типов классов с операторами postfix, которые возвращают void.
С встроенными типами, они одинаковы. С пользовательским типом префикс, естественно, менее сложный. –
Это не обязательно: http://stackoverflow.com/questions/24886/is-there-a-performance-difference-between-i-and-i-in-c – maditya
++ i увеличивает значение i 'поэтому, поэтому в один такт цикла значение увеличивается на что-то новое. В то время как i ++ занимает 2 такта. Насколько эффективность идет, что спорно, учитывая скорость тактового цикла. – smac89