Geo*_*rge 2 c++ loops if-statement max
我需要在图像中找到一个像素与其周围的8个像素相比具有最大值的情况.
我不确定什么是最佳方式,所以我的想法是使用if语句:
if(pixel > pixel1 && pixel > pixel2 && pixel > pixel3 && ... && pixel> pixel8)
Run Code Online (Sandbox Code Playgroud)
我的问题如下:如果它发现例如像素不大于pixel1,它是否仍会检查语句的其余部分,或者因为它只是AND,它是否已经丢弃指令并进一步?
如果答案是第一个,这会使得每次检查每个像素的计算量很大,有人可以给我一个暗示,如何更有效地处理这个简单的问题吗?
这称为短路评估.
如果第一个参数不足以确定表达式的值,则仅执行或计算第二个参数
由于条件是&&,它不会进一步检查它是否false在任何条件下得到.
同样,如果条件是||,它会在找到a后停止检查true.
顺便说一句,我并不完全确定优先规则,因此我会围绕括号中的每个条件只是为了安全.
if((pixel > pixel1) && (pixel > pixel2) && ...
Run Code Online (Sandbox Code Playgroud)
编辑:运算符优先级规则似乎表明在这种情况下括号是不必要的.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |