Set erstellen & Elemente hinzufügen
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 36 von 56.
Nachdem Sie nun wissen, was eine Menge (Set) ist, lernen wir, wie man eine erstellt und Elemente hinzufügt. Um Elemente zu einem std::set hinzuzufügen, verwenden Sie die Methode .insert().
So erstellen Sie ein leeres Set und fügen Elemente hinzu:
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);Das wichtigste Merkmal von Sets ist, dass sie Duplikate automatisch ablehnen. Wenn Sie versuchen, denselben Wert zweimal einzufügen, bleibt das Set unverändert:
numbers.insert(5); // Dies wird keine weitere 5 hinzufügen
numbers.insert(5); // Dies auch nichtNach all diesen Einfügungen wird Ihr Set nur drei eindeutige Elemente enthalten: 2, 5 und 8 (automatisch sortiert). Die doppelten Versuche, 5 einzufügen, werden einfach ignoriert, was genau das ist, was Sets so nützlich für die Verwaltung von Sammlungen eindeutiger Daten macht.
Aufgabe
EinfachErstellen Sie ein Programm, das die Eigenschaft der Eindeutigkeit von Elementen in std::set demonstriert, indem es mehrere Ganzzahlen zu einem Set hinzufügt, einschließlich doppelter Werte, und anschließend die endgültige Größe anzeigt, um zu beweisen, dass Duplikate automatisch ignoriert werden.
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
n, die die Anzahl der einzufügenden Ganzzahlen darstellt - Anschließend
nGanzzahlen, die in das Set eingefügt werden sollen
Ihr Programm sollte:
- Ein leeres
std::set<int>erstellen - Die Anzahl der einzufügenden Ganzzahlen einlesen
- Eine Schleife verwenden, um jede Ganzzahl einzulesen und sie mit der Methode
.insert()in das Set einzufügen - Nach allen Einfügevorgängen die endgültige Größe des Sets mit der Methode
.size()ausgeben - Eine Nachricht ausgeben, die zeigt, wie viele Duplikatversuche ignoriert wurden
Verwenden Sie das folgende exakte Ausgabeformat:
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]Die Anzahl der ignorierten Duplikate sollte als Differenz zwischen der Gesamtzahl der Einfügeversuche und der endgültigen Größe des Sets berechnet werden. Dies zeigt, dass Sets automatisch die Eindeutigkeit wahren, indem sie doppelte Werte ablehnen, was ihr Hauptmerkmal für das Speichern von Sammlungen eindeutiger Elemente ist.
Probier es selbst
#include <iostream>
#include <set>
using namespace std;
int main() {
// Lies die Anzahl der einzufügenden Ganzzahlen ein
int n;
cin >> n;
// Erstelle ein leeres Set
set<int> mySet;
// TODO: Schreibe deinen Code hier
// Verwende eine Schleife, um n Ganzzahlen einzulesen und sie in das Set einzufügen
// Berechne, wie viele Duplikate ignoriert wurden
// Gib die Ergebnisse aus
cout << "Set size: " << mySet.size() << endl;
cout << "Duplicates ignored: " << /* Duplikate berechnen */ << 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