Die Strukturen von C ++ STL zum Halten von Elementen in einer bestimmten Reihenfolge werden als Sets bezeichnet. Ein Set muss einzigartige Komponenten haben. Jeder Element in einem Satz kann durch seinen Wert einzeln identifiziert werden, sodass sie als Schlüssel dienen. In C ++ können wir Elemente aus einem Satz hinzufügen und löschen. Wir können jedoch nicht die Werte der Komponenten ändern, da sie nach der Aufstellung in den Satz statisch sind.”
Definition von Set in c++
Wie bereits erwähnt, sind Sets genau die Art von Standard -Containern der Standard -Vorlagenbibliothek, die in C ++ verwendet werden, um Artikel genau zu speichern. Sets dürfen nur den Insertions- und Löschmethoden unterzogen werden. In einem Set -Typ -Objekt werden die Elemente automatisch in einer bestimmten Reihenfolge organisiert. Wir können die Werte der bereits bestehenden Komponenten in einem Satz nicht ändern oder aktualisieren, da die Elemente in Containern unveränderlich sind. Indem ein Gegenstand in einem Set genau definiert wird, dient es als Schlüssel für sich selbst. Die Sets sind nur aktiviert, um einen bestimmten Wert zu enthalten.
Wann ist Sätze zu verwenden?
In der Wettbewerbsprogrammierung werden Sets als Container häufig eingesetzt. Wenn es notwendig ist, Gegenstände kategorisiert zu speichern, können wir die Verwendung von Sätzen in Betracht ziehen. Beachten Sie jedoch, dass die Sets nicht die Speicherung von wiederholten Werten zulassen. Sobald es eingegeben wurde, kann der Wert nicht geändert werden.
Implementierung der Sets
Um mit Sätzen zu interagieren, sollten die 2 Haupt -Header -Dateien integriert werden. Sätze werden mit der Verwendung von Iteratoren zugegriffen. Integrieren Sie #include und #include in Ihren Code. Wir haben die Wahl, nur diese eine Header -Datei zu verwenden, anstatt diese beiden. Die Bibliothek dient als Ersatz für oben genannte Header-Dateien. Wir können diese eine Header -Datei nur anwenden, da sie alle Header -Dateien enthält. Binäre Suchbäume werden verwendet, um Sätze auf interner Ebene zu definieren.
Setzen Sie Eigenschaften in c++
Im Folgenden finden Sie einige der gemeinsamen Set -Attribute in C ++:
Syntax von Set
Das Folgende ist die STD :: SET -Deklaration aus der Bibliothek "Set":
Parameter
Ein fester Container kann einzigartige Komponenten enthalten. Dies kann entweder ein Funktionsobjekt oder ein Funktionszeiger sein. Weniger ist der Standardwert und liefert die gleichen Ergebnisse wie die Verwendung des weniger als als verwendeten Ausdrucks (x Funktionen für Sets In C ++ könnten Sets einer Vielzahl von Operationen unterzogen werden. Bewerten wir einige der Haupt -Set -Techniken. Beispiel Nr. 1 In diesem Fall wird ein Satz initialisiert. In C ++ geben wir die verschiedenen Arten von Elementen an, die in einem Satz platziert werden, wenn es erstellt wird. Die Datenpunkte eines Satzes werden normalerweise in aufsteigender Reihenfolge gespeichert. Die größere Funktion könnte verwendet werden, um Daten in absteigender Reihenfolge zu halten. Leeres Set Dies sind zahlreiche Techniken, um einen Satz zu deklarieren. Die Header -Dateien und würden zuerst integriert. Danach wird der Standard -Namespace verwendet. Die Funktion main () wird aufgerufen. Der erste Satz wird initialisiert und es wird ein leerer Satz sein, da es kein Element enthält. Der zweite Satz wird als leerer Set in absteigender Reihenfolge deklariert. Der neue Satz wird initialisiert, indem verschiedene ganze Zahlen hinzugefügt werden. Dieser Satz enthält vier Elemente. Darüber hinaus werden wir einen neuen Satz mit dem Namen "S4" durch die Verwendung eines anderen Satzes "S3" initialisieren, "S3". Wir haben die Werte des S3 als die Parameter des S4 bereitgestellt. Jetzt wird das Set aus einem Array deklariert. Wir geben die Werte im Array an und speichern diese Werte dann in einer Variablen „A“. Der fünfte Satz enthält die 4 Werte des Arrays. Als nächstes definieren wir den Iterator für diese erforderlichen Sets. Wir würden die Werte aller Sätze durch die Verwendung der „für“ -Schloop erwerben. Beispiel Nr. 2 Diese Illustration zeigt, wie die Insertions- und Löschmethoden des Sets funktionieren. Die erforderlichen Bibliotheken werden zu Beginn des Programms enthalten sein. Der Standard -Namespace wird als "std" hinzugefügt. Jetzt wird die main () -Methode aufgerufen. Lassen Sie uns verschiedene Sätze deklarieren. Wir würden die Methode Insert () aufrufen, um die Werte in den Satz hinzuzufügen. Verschiedene Zeiger werden erstellt und "p_1", "p_2" und "p_3" bezeichnet und benannt. Der Iterator wird als diese Hinweise deklariert. Die Anweisung "Cout" wird verwendet, um die Zeile "Die Werte des Satzes" darzustellen "darstellen". Jetzt wird die "für" -Schloop verwendet, um alle eingefügten Werte des Satzes anzuzeigen. Der Beginn () würde aufgerufen, um die Werte des zu druckenden Satzes zu starten, und End () -Methoden würden angewendet, um die Werte des Satzes zu beenden. Diese Methoden werden in der „für“ -Schloop aufgerufen. Der Konstruktor des ersten Zeigers wird in der Anweisung „Cout“ definiert. Jetzt werden wir einen weiteren Satz machen, indem wir die Werte in absteigender Reihenfolge organisieren. Die Elemente der ersten und zweiten erforderlichen Sets sind gleich. Die Funktion find () wird auf den Elementen des ersten definierten Satzes aufgerufen. Diese Funktion erhält die definierten Werte aus dem Satz. Jetzt würden wir die Methode erase () anwenden, um die Werte aus dem ersten Satz zu löschen. Die gelöschten Werte sind 22 bis 88. Die Anweisung "Cout" wird verwendet, um den Text "Die Werte der Set nach der Verwendung von Erase () -Funktion" anzuzeigen. Um die Werte anzuzeigen, wird die "für" -Schloop verwendet. Dann wird der Konstruktor des ersten Zeigers deklariert. Jetzt verwenden wir die "für" -Schloop, um die Elemente des zweiten erforderlichen Satzes zu drucken. Die Anweisung "Cout" druckt die Zeile "Die Werte des zweiten Satzes sind". Vor dem Hinzufügen des Befehls „Rückgabe 0“ wird der Konstruktor der Iteratorvariablen erstellt. Beispiel Nr. 3 In diesem Beispiel werden zwei Funktionen, find () und löschen, verwendet. Wenn das Element identifiziert wird, erzeugt die Find () -Methode einen Iterator, der darauf bezieht. Andernfalls bietet es einen Iterator, der sich auf das Ende des Sets bezieht. Die Elemente im Set werden mit Hilfe der ERASE () -Funktion entfernen. Das Programm enthält die entsprechenden Bibliotheken zu Beginn genannt . Der Standard -Namespace als „std“ wird eingeführt. Ein Hinweis auf die Funktion main () wird nun erstellt. Geben Sie zuerst die festgelegte fest. Um die Werte in den Satz aufzunehmen, würden wir die Funktion Insert () verwenden. Der Iterator wird als „Ich“ identifiziert; Die Werte des entsprechenden Satzes werden mit dem Befehl „Cout“ angezeigt. Die "für" -Schloop wird nun verwendet, um alle eingefügten Werte des Sets anzuzeigen. Die Funktion begin () wird verwendet, um mit dem Drucken der Werte des Satzes zu beginnen, und die Methode End () würde verwendet, um die Werte des Satzes zu drucken. Diese definierten Methoden würden in der „für“ -Schloop angewendet. Die Erklärung „Cout“ erklärt den Konstruktor des Iterators. Der Text „Aktualisierter Satz“ wird mit der Cout -Anweisung angezeigt. Die Komponenten des ersten Sets würden durch die Verwendung der Find () -Funktion bestimmt. Die definierten Werte werden durch diese Funktion aus dem Satz erhalten. Um die Werte aus dem ersten Satz zu entfernen, werden wir nun die ERASE () -Methode verwenden. Bis zu 25 Werte werden beseitigt. Verwenden einer „für“ -Schloop werden die verbleibenden Ganzzahlen vorgestellt. Die Erklärung „Cout“ liefert eine Erklärung des Iterator -Konstruktors. Untergrenze und Obergrenze für die Werte des Sets werden durchgeführt. Die Werte des Sets 45 und 17 würden der Funktion unter der unteren bode () -Funktion zur Verfügung gestellt, die dann den Befehl „Cout“ verwenden würde, um das Ergebnis zu drucken. Diese ähnlichen Werte im Satz werden mit einer oberen () -Methode () behandelt. Der Ergebniswert wird vom Befehl "Cout" gedruckt. Der Befehl "return 0" wird am Ende hinzugefügt. Abschluss Wir haben C ++ Set -Funktionen in diesem Handbuch besprochen. Ähnlich wie bei anderen Standardbibliothekspaketen ist der C ++ - Set von entscheidender Bedeutung. Es erleichtert Entwicklern, Werte zu extrahieren und zu manipulieren. Wir haben drei Programme implementiert. Die Initialisierung der Sets wird im ersten Beispiel behandelt. Der zweite zeigt die Ergänzungen und Umzüge der Werte aus dem Satz an. Im endgültigen Fall wählen wir ein paar Werte aus dem Satz aus und entfernen sie dann.
#enthalten
Verwenden von Namespace STD;
int main ()
sets1;
Satz
Satz
Satz
int ar [] = 15, 24, 75, 51;
Set S5 (AR, AR+4);
set :: iterator i;
für (auto i = s5.Start(); ich!= S5.end (); i ++)
Cout<
Rückkehr 1;
Verwenden von Namespace STD;
int main ()
Set S1;
S1.Einfügen (22);
S1.Einfügen (33);
S1.Einfügen (56);
S1.Einfügen (9);
S1.Einfügen (67);
S1.Einfügen (47);
S1.Einfügen (88);
set :: iterator p_1, p_2, p_3;
Cout<< " The values of the set are: \n" ;
für (p_1 = s1.Start() ; p_1 != S1.Ende() ; P_1 ++)
Cout<< *p_1 << " " ;
Cout<
Satz
p_2 = s1.finde (22);
p_3 = s1.finde (88);
S1.erase (p_2, p_3);
Cout<< " The values of the set after using erase() function: \n " ;
für (p_1 = s1.Start() ; p_1 != S1.Ende() ; P_1 ++)
Cout<< *p_1 << " ";
Cout<
für (i = s2.Start() ; ich != S2.Ende() ; i ++)
Cout<< *i<< " ";
Rückkehr 0;
Verwenden von Namespace STD;
int main ()
sets_1;
S_1.Einfügen (45);
S_1.Einfügen (12);
S_1.Einfügen (17);
S_1.Insert (89);
S_1.Einfügen (25);
S_1.Einfügen (14);
S_1.Einfügen (78);
S_1.Insert (34);
set :: iterator i;
Cout<<"Values of required set: \n";
für (i = s_1.Start() ; ich != S_1.Ende() ; i ++)
Cout<<*i<< " ";
Cout<
S_1.löschen (s_1.begin (), s_1.finde (25));
für (i = s_1.Start() ; ich!= S_1.Ende() ; i ++)
Cout<< *i<< " " ;
Cout<
Cout<< *s_1.lower_bound( 45 )<
Cout<< *s_1.lower_bound( 17 ) <
Cout<< *s_1.upper_bound( 45 ) <
Cout<< *s_1.upper_bound( 17 ) <