Menu
Coddy logo textTech

Auf Elemente prüfen

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 37 von 56.

Beim Arbeiten mit Sets müssen Sie oft prüfen, ob ein bestimmtes Element existiert, bevor Sie Operationen darauf ausführen. Die Methode .count() bietet eine einfache Möglichkeit zu überprüfen, ob ein Element in Ihrem Set vorhanden ist.

Genau wie bei Maps gibt die .count()-Methode 1 zurück, wenn das Element im Set vorhanden ist, und 0, wenn nicht. Dies macht sie ideal für bedingte Prüfungen:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

Dieser Ansatz ist viel sicherer, als zu versuchen, direkt auf Elemente zuzugreifen, besonders wenn Sie nicht sicher sind, ob diese existieren. Sie können .count() verwenden, um Benutzereingaben zu validieren, Fehler zu vermeiden oder Entscheidungen basierend darauf zu treffen, was derzeit in Ihrem Set gespeichert ist.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das demonstriert, wie man sicher die Existenz von Elementen in einem std::set überprüft, bevor Operationen an ihnen durchgeführt werden. Diese Herausforderung wird Ihr Verständnis der .count()-Methode zur Elementverifizierung testen.

Die folgenden Eingaben werden bereitgestellt:

  • Ein Integer n, der die Anzahl der Elemente darstellt, die anfänglich zum Set hinzugefügt werden sollen
  • Anschließend n Integer, die in das Set eingefügt werden sollen
  • Ein Integer m, der die Anzahl der zu suchenden Elemente darstellt
  • Anschließend m Integer, deren Existenz im Set überprüft werden soll

Ihr Programm sollte:

  1. Ein leeres std::set<int> erstellen
  2. Die Anzahl der hinzuzufügenden Elemente lesen und sie mit .insert() in das Set einfügen
  3. Die Anzahl der zu suchenden Elemente lesen
  4. Für jedes Suchelement die .count()-Methode verwenden, um zu prüfen, ob es im Set existiert
  5. Entsprechende Meldungen ausgeben, je nachdem, ob jedes Element gefunden wurde oder nicht
  6. Nach allen Suchvorgängen die Gesamtzahl der gefundenen Elemente ausgeben

Verwenden Sie das folgende exakte Ausgabeformat:

Für jedes Suchergebnis:

Searching for [number]: Found

Für nicht gefundene Elemente:

Searching for [number]: Not found

Zusammenfassung am Ende:

Total found: [count] out of [total_searches]

Verwenden Sie numbers.count(searchValue), um zu prüfen, ob ein Element im Set existiert. Wenn es 1 zurückgibt, existiert das Element; wenn es 0 zurückgibt, existiert das Element nicht. Führen Sie einen Zähler, um zu verfolgen, wie viele Elemente während der Suchvorgänge erfolgreich gefunden wurden.

Spickzettel

Verwenden Sie .count(), um zu prüfen, ob ein Element in einem Set existiert. Es gibt 1 zurück, wenn das Element existiert, und 0, wenn es nicht existiert:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

Diese Methode ist sicherer als der Versuch, direkt auf Elemente zuzugreifen, und eignet sich perfekt für bedingte Prüfungen und Eingabevalidierungen.

Probier es selbst

#include <iostream>
#include <set>
using namespace std;

int main() {
    // Lies die Anzahl der Elemente ein, die dem Set hinzugefügt werden sollen
    int n;
    cin >> n;
    
    // Erstelle ein leeres Set
    set<int> numbers;
    
    // Lies n Elemente ein und füge sie in das Set ein
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // Lies die Anzahl der zu suchenden Elemente ein
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: Schreibe deinen Code unten
    // Für jedes Suchelement:
    // 1. Lies den Suchwert ein
    // 2. Verwende numbers.count(searchValue), um zu prüfen, ob er existiert
    // 3. Gib die entsprechende Nachricht aus
    // 4. Aktualisiere foundCount, falls das Element gefunden wurde
    
    // Gib die Zusammenfassung aus
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf