Comparant une variable à plusieurs valeurs efficacement
Souvent dans la programmation, il est nécessaire de vérifier si une variable correspond à l'une de nombreuses options. Cela peut être réalisé grâce à diverses méthodes, mais il est essentiel de hiérarchiser l'efficacité.
méthodes inefficaces
tente de comparer une variable à plusieurs valeurs à l'aide d'opérateurs logiques comme ou peut conduire à un code inefficace. Par exemple:
if (num == (1 || 2 || 3))
Cette approche évalue chaque traitement logique (1 || 2, 2 || 3) séparément, qui peut entraîner un traitement gaspillé. std :: initializer_list. La fonction de modèle suivante prend une variable et une liste d'initialisateur de correspondances potentielles:
modèle
if (is_in (num, {1, 2, 3})) {do qui type:
templatebool is_in(const T& v, std::initializer_list lst) { return std::find(std::begin(lst), std::end(lst), v) != std::end(lst); }
Cette fonction de modèle utilise un transfert parfait pour évaluer chaque comparaison efficacement, résultant en un code qui fonctionne à égalité avec des comparaisons manuscrites.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3