我们有一个问题是Ci++和++i C之间有性能差异吗?
C++的答案是什么?
在编程类,教授教我们关于x++和++x,其中x是一个整数.
他说,在方案中,我们可以只是把两种x++或++x,++x是更有效的(一点,但还是在理论上,更高效尽管如此).
但我忘记了原因.有谁知道?这是Java.
可能重复:
在C++中预增量比后增量更快 - 是吗?如果是的话,为什么呢?
在C++中i ++和++ i之间是否存在性能差异?
我被告知,当使用STL和它的迭代器时,我应该总是使用++iter而不是iter++.
我引用:
因为它只能更快,从不慢
这是真的?
当我用下面的代码编译并运行代码counter++或++counter替换时x,输出是相同的; 在这两种情况下,数字1 - 10:
for (int counter = 1; counter < 11; x)
{
std::cout << counter << endl;
}
Run Code Online (Sandbox Code Playgroud)
最初我认为++counter会增加1,然后返回新值,然后在循环头中评估布尔表达式.即,当使用counter = 1和使用时++counter,counter布尔表达式中的值为2.这似乎并非如此,因为两个输出都是相同的,而不是++counter像我预期的那样具有少一次迭代的版本.
在周围读取时,它分别在循环体的开始或结束处出现++counter并counter++递增counter1.在这种情况下,至少在概念上,这不是一个相同的行动吗?因为一旦循环超过第一次迭代,循环的结束和开始是相同的.
我唯一能看到这个有所作为的是第一次迭代,std::cout << counter << endl;如果counter++使用的话,应该输出1到控制台(因为在循环结束时将1添加到计数器).虽然std::cout << counter << endl;应该输出2到控制台如果++counter被使用(因为1被添加在循环的开始到计数器).
除了上面的问题,你能否准确地解释在for循环标题中评估三个动作的顺序,并准确地解释使用i++和时迭代发生的位置++i.
非常感谢!
他们说这++i更快但我不明白为什么.谁能告诉我这些运营商的汇编代码?