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 dies nicht der Fall ist. Dies macht sie perfekt 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, insbesondere wenn Sie nicht sicher sind, ob diese existieren. Sie können .count() verwenden, um Benutzereingaben zu validieren, Fehler zu vermeiden oder Entscheidungen basierend auf dem aktuellen Inhalt Ihres Sets zu treffen.
Aufgabe
EinfachErstellen Sie ein Programm, das demonstriert, wie man sicher auf die Existenz von Elementen in einem std::set prüft, bevor Operationen mit ihnen durchgeführt werden. Diese Herausforderung testet Ihr Verständnis der .count()-Methode zur Elementüberprüfung.
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
nInteger, die in das Set eingefügt werden sollen - Ein Integer
m, der die Anzahl der zu suchenden Elemente darstellt - Anschließend
mInteger, deren Existenz im Set geprüft werden soll
Ihr Programm sollte:
- Ein leeres
std::set<int>erstellen - Die Anzahl der hinzuzufügenden Elemente lesen und diese mit
.insert()in das Set einfügen - Die Anzahl der zu suchenden Elemente lesen
- Für jedes Suchelement die
.count()-Methode verwenden, um zu prüfen, ob es im Set existiert - Entsprechende Meldungen ausgeben, je nachdem, ob jedes Element gefunden wurde oder nicht
- Nach allen Suchvorgängen die Gesamtzahl der gefundenen Elemente ausgeben
Verwenden Sie das folgende exakte Ausgabeformat:
Für jedes Suchergebnis:
Searching for [number]: FoundFür nicht gefundene Elemente:
Searching for [number]: Not foundZusammenfassung 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.
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 dem Set hinzu
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 es existiert
// 3. Gib die entsprechende Nachricht aus
// 4. Aktualisiere foundCount, wenn das Element gefunden wurde
// Gib die Zusammenfassung aus
cout << "Total found: " << foundCount << " out of " << m << endl;
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügen6Sets (Eindeutige Elemente)
Einführung in std::setSet erstellen & Elemente hinzufügenAuf Elemente prüfenElemente entfernenÜber ein Set iterierenZusammenfassung – Eindeutige Zahlen