Это общий вопрос эффективности для C ++. Я не знаком с внутренней работой компиляторов, поэтому предположим, что у меня есть несколько циклов и потенциальный оператор, если внутри, например ,::
for(int i=0; ...)
{
for(int j=0; ...)
{
if( ... )
{
...
}
else
{
... (slightly different)
}
}
}
< /code>
Тем не менее, это предложение, если не зависит от петли. Существует ли значительная разница скорости, если я вместо этого определяю оператор IF/ELSE за пределами петель с петлями внутри? Например ,:
if( ... )
{
for(int i=0; ...)
{
for(int j=0; ...)
{
...
}
}
}
else
{
for(int i=0; ...)
{
for(int j=0; ...)
{
... (slightly different)
}
}
}
< /code>
Если да, или если нет, то почему это так? У меня есть некоторое представление о том, что компилятор будет распознавать то же самое, если утверждение, сделанное снова и снова, но это довольно незнакомая территория для меня. < /P>
Я изучил ответ на этот вопрос :
будет оптимизировать компилятор условного утверждения в цикле, перемещая его OUSTE в цикл? Но что -то сделано, как это автоматически? Если нет, то, насколько большая стоимость является таковым, как это, внутри петли?
Подробнее здесь: https://stackoverflow.com/questions/244 ... -and-loops