类似Python的||和&& for if in C ++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类似Python的||和&& for if in C ++相关的知识,希望对你有一定的参考价值。

在C ++中,以下类似Python的构造是否更慢?

bool_stuff[i] || (a[i]=1);

比较平凡的老

if(!bool_stuff[i])
  a[i]=1;

原因是,我在嵌套的for循环中有上述片段,这是唯一的声明。我认为在前一种情况下可读性更高,但只有在前者不安全或速度慢的情况下才能使用后者。

答案

They compile to the same thing(如果你在gcc中使用-O0以上的任何优化,可能在其他编译器中)。

第一种方法的其他缺点是右边的表达式必须可转换为bool(如果它无缘无故地调用operator bool),并且,如果operator||过载,它实际上不会短路。

if语句更具可读性和速度。

以上是关于类似Python的||和&& for if in C ++的主要内容,如果未能解决你的问题,请参考以下文章