comparando uma variável com vários valores com eficiência
frequentemente na programação, é necessário verificar se uma variável corresponde a uma das várias opções. Isso pode ser alcançado através de vários métodos, mas é essencial priorizar a eficiência. Por exemplo:
if (num == (1 || 2 || 3)) Esta abordagem avalia cada expressão lógica (1 || 2, 2 || 3) separadamente, que pode resultar em processamento desperdiçado. Utilizando STD :: Initializer_list. A função de modelo a seguir pega uma variável e uma lista inicial de possíveis correspondências:
modelo
if (num == (1 || 2 || 3))
if (is_in (num, {1, 2, 3})) {faça material}
mais eficiente solução em c 17
C7 Introduzes ANGRESSENCES ANGUES ANGUNUCES ANS ALTESTEN EXPUTILTEN EXPORTIONS ALVESSENHEN EXCELTION ELESTEM ASSELTUES AS EFFERT ENSTEME TIPO:
templatemodelobool is_in(const T& v, std::initializer_list lst) { return std::find(std::begin(lst), std::end(lst), v) != std::end(lst); }
Esta função de modelo usa encaminhamento perfeito para avaliar cada comparação com eficiência, resultando em código que executa em pé de igualdade com comparações escradas à mão.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3