几个简单的代码优化技术
这些都是自己的心得和一些书上零零散散的东西,可能有些不对的地方欢迎指正
带有&&的if语句
bool
fun1(
bool
bMan,
const
string
&
strName)
{
if (bMan && strName == " somebody " ) return true ;
return false ;
}
bool fun2( bool bMan, const string & strName)
{
if (strName == " somebody " && bMan) return true ;
return false ;
}
{
if (bMan && strName == " somebody " ) return true ;
return false ;
}
bool fun2( bool bMan, const string & strName)
{
if (strName == " somebody " && bMan) return true ;
return false ;
}
在上面两个函数中我们一般都会选第一个。
因为前面的bMan判断非常简单,如果它失败了就直接往下跳,如果它成功了才需要对strName进行比较复杂的判断。而如果将strName放在前面则每次都必须经过一段复杂的判断
除了运算的复杂外,还要从概率上考虑一个问题,加入&&前后两个判断的运算复杂度一样的话,就要考虑把比较容易判断为false的放在前面,因为这样就比较少的执行到后面的判断
总结1:在&&的判断中将比较简单的放在前面,将比较容易为false放在前面
同样可以得出另一个关于||的判断
总结2:在||的判断中将比较简单的放在前面,将比较容易为true的放在前面