„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich eine Variable effizient mit mehreren Werten in C ++ vergleichen?

Wie kann ich eine Variable effizient mit mehreren Werten in C ++ vergleichen?

Gepostet am 2025-03-13
Durchsuche:134

How Can I Efficiently Compare a Variable Against Multiple Values in C  ?

vergleicht eine Variable mit mehreren Werten effizient

häufig in der Programmierung müssen prüfen, ob eine Variable mit einer von mehreren Optionen übereinstimmt. Dies kann durch verschiedene Methoden erreicht werden, aber es ist wichtig, die Effizienz zu priorisieren.

ineffiziente Methoden

versuchen, eine Variable mit mehreren Werten mit logischen Operatoren wie ineffizienter Code zu vergleichen. Zum Beispiel:

if (num == (1 || 2 || 3))

Dieser Ansatz bewertet jeden logischen Ausdruck (1 || 2, 2 || 3) getrennt, was zu einer Verschwendung von Verschwendung führen kann. std :: initializer_list. Die folgende Vorlagenfunktion nimmt eine Variable und eine Initialisierungsliste potenzieller Übereinstimmungen an:

Vorlage bool is_in (const t & amp; v, std :: initializer_list lst) { return std :: find (std :: begin (lst), std :: end (lst), v)! = std :: end (lst); } jetzt können Sie es verwenden wie:

if (is_in (num, {1, 2, 3})) {do sachen}

template 
bool is_in(const T& v, std::initializer_list lst)
{
    return std::find(std::begin(lst), std::end(lst), v) != std::end(lst);
}
effizientere Lösung in c 17

template 
bool is_in(const T& v, std::initializer_list lst)
{
    return std::find(std::begin(lst), std::end(lst), v) != std::end(lst);
}
. Typ:

Vorlage bool is_in (First & amp; & amp; zuerst, t & amp; & amp; ... t) { return ((first == t) || ...); }

Diese Vorlagenfunktion verwendet die perfekte Weiterleitung, um jeden Vergleich effizient zu bewerten, was zu Code führt, der mit handgeschriebenen Vergleiche gleich funktioniert.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3