可能重复:
Is there a performance difference between i++ and ++i in C++?
我今天接受采访,面试官问我这个问题。
在C ++中,对非原始类型更加“有效”,A前增量(++ i)或后增量(i ++)。我通过说Pre增量来回答它,但无法给出确切的原因。
我在网上搜索过,发现Pre增量效率更高。但我无法理解原因。有人可以解释一下原因吗?
例如:
for ( ; c.value() != 21 ; ++c)
or
for ( ; c.value() != 21 ; c++)
答案 0 :(得分:1)
预增量(++i
)通常更快,因为后增量返回当前值然后递增值,而预增量只是递增变量。
在许多情况下,编译器无论如何都会优化它,除非你专门使用后增量来使用当前值并在之后增加值。