在C ++中,对非原始类型更加“有效”,A前增量(++ i)或后增量(i ++)

时间:2012-04-03 02:38:35

标签: c++

  

可能重复:
  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++)

1 个答案:

答案 0 :(得分:1)

预增量(++i)通常更快,因为后增量返回当前值然后递增值,而预增量只是递增变量。

在许多情况下,编译器无论如何都会优化它,除非你专门使用后增量来使用当前值并在之后增加值。