, сравнивая переменную с несколькими значениями эффективно
Часто в программировании необходимо проверять, соответствует ли переменная одна из нескольких параметров. Это может быть достигнуто с помощью различных методов, но важно определить эффективность. Например:
if (num == (1 || 2 || 3)) ] Этот подход оценивает каждое логическое выражение (1 || 2, 2 || 3) отдельно, что может привести к потраченной впустую обработке. Использование std :: initializer_list. Следующая функция шаблона принимает переменную и список инициализаторов потенциальных совпадений:
Template
if (num == (1 || 2 || 3))
if (is_in (num, {1, 2, 3})) {do Stuff}
более эффективное решение в C 17
Template bool is_in (First & amp; & amp; во -первых, t & amp; & amp; ... t) { return ((первое == t) || ...); }Эта функция шаблона использует идеальную пересылку, чтобы эффективно оценить каждое сравнение, что приводит к коду, который работает наравне с рукописными сравнениями.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3