Python-как || и && для if в C ++ - PullRequest
       3

Python-как || и && для if в C ++

0 голосов
/ 13 апреля 2019

Является ли следующая Python-подобная конструкция более медленной в C ++?

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

по сравнению с простым старым

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

Причина в том, что у меня есть приведенный выше фрагмент во вложенном цикле for, и это единственное утверждение. Я думаю, что читаемость выше в первом случае, но следует использовать последний, только если первый небезопасен или если он медленный.

1 Ответ

0 голосов
/ 13 апреля 2019

Они компилируются в одно и то же (Если вы используете оптимизацию выше -O0 в gcc и, возможно, в других компиляторах).

Другие недостатки первого метода заключаются в том, чтовыражение справа должно быть преобразовано в bool (вызов operator bool, если у него нет побочных эффектов без причины), и, если operator|| перегружен, оно фактически не будет коротким замыканием.

Оператор if гораздо более читабелен и имеет ту же скорость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...