是否比快?

Zos*_*sia 3 c++ performance

正如在主题中,我在学校里学到的是,速度更快,但有人告诉我,虽然速度更快......我必须优化程序,我想写'while',而不是'for',但是......它赢了'慢一点?例如:

for (int i=0; i<x; i++)
{
   cout<<"dcfvgbh"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我会写:

i=0;
while (i<x)
{
    cout<<"dcfvgbh"<<endl;
    i++;
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 10

该标准要求(§6.5.3/ 1):

for语句
对于(用于-INIT-语句条件选择 ;表达选择)语句
相当于

{
    for-init-statement
    while ( condition ) {
        statement
        expression;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,您不太可能看到它们之间存在太大差异(即使执行时间不一定是标准中指定的等效项的一部分).在等价中也列出了一些例外(如果执行a,在评估条件之前,名称的范围,表达式的执行continue).后者至少在理论上可以在某些条件下稍微影响速度,但可能不足以注意或关注作为规则,并且除非你实际使用了continue循环内部,否则绝对不会.


Gab*_*abe 7

因为所有意图和目的for只是一种奇特的写作方式while,因此无论如何都没有性能优势.使用其中一个的主要原因是如何翻译意图,以便读者更好地理解循环实际上在做什么.


Lig*_*ica 6

没有.

不,不是.

它并不快.