在for循环中使用++计数器而不是计数器++

时间:2011-09-25 16:49:17

标签: c++ for-loop iterator

  

可能重复:
  Is there a performance difference between i++ and ++i in C++?

我看到很多地方用于这样的循环:

for(i = 0; i < size; ++i){ do_stuff(); }

而不是(我和大多数人使用的)

for(i = 0; i < size; i++){ do_stuff(); }

++i应该与i++完全相同(除非运算符超载差异)。我看到它用于正常的for循环和STL迭代循环。

为什么他们使用++i代替i++?任何编码规则都建议这样做吗?

编辑:关闭原因我发现它与Is there a performance difference between i++ and ++i in C++?完全相同

2 个答案:

答案 0 :(得分:3)

简单地说:++x is pre-increment and x++ is post-increment that is in the first x is incremented before being used and in the second x is incremented after being used.

示例代码:

int main()
{
    int x = 5;

    printf("x=%d\n", ++x);
    printf("x=%d\n", x++);
    printf("x=%d\n", x);

}

O / P:

x=6
x=6
x=7

答案 1 :(得分:2)

这两个确实是相同的,因为第三部分是在循环的每次迭代之后执行的,并且它的返回值不用于任何东西。这只是一个偏好问题。