Die Eingangszeichen hier sind ungeortiert. Dieser Satz kann mit der folgenden Anweisung erstellt werden:
SatzDies ist eine Reihe von Chars. Es ist möglich, einen Satz eines anderen Typs zu haben. Was auch immer der Fall ist, um die Codierung festzulegen, die C ++ -Set -Bibliothek muss in das Programm aufgenommen werden. Betrachten Sie das folgende Programm:
#enthaltenDie Ausgabe ist:
A, b, c, d, e,Die Ausgabe wird aufsteigend sortiert, wenn der Eingang nicht sortiert wurde. Nachdem Elemente in ein Set eingefügt wurden, werden sie sortiert. Mit der Standardeinstellung steigt die Sortierung wie im obigen Programm auf.
Das obige Programm begann mit der Aufnahme der iostream -Bibliothek. Dies ist für die Verwendung mit dem Terminal (Konsole) erforderlich. Die nächste Zeile ist eine weitere Richtlinie, die die festgelegte Bibliothek enthält. Die nachstehende Linie ist keine Richtlinie. Es ist eine Aussage, die mit einem Semikolon endet, der darauf besteht, dass jeder Name, dem nicht „std ::“ vorangegangen ist.
Auf die Header -Linien folgen die Funktion c ++ main (). Die erste Aussage in der Hauptfunktion deklariert den Satz. Das zweite Codesegment zeigt die Werte des Satzes an, die interner Sortieren nach C erhalten haben sollen++.
Set sortiert auf Ascending
Im Standard -Namespace ist die Syntax zum Konstruktion eines Satzes tatsächlich:
VorlageHier gibt es drei Vorlagenspezialisierungen. Wenn der letzte vom Programmierer nicht gegeben wird, wird der Standardwert von C ausgewählt++. Wenn der letzte und zweite vom Programmierer nicht angegeben ist, werden ihre Standardwerte ausgewählt. Der Standardwert für die zweite Spezialisierung ist „weniger“, was bedeutet, aufsteigend sortieren. Wenn es weggelassen wird, ist das Set weiterhin aufsteigend sortiert. Wenn es als „weniger“ vorhanden ist, wird das Set aufsteigend sortiert, wie das folgende Programm zeigt:
#enthaltenBeachten Sie, dass "Char" an der Stelle von "Schlüssel" in "weniger" ist. Die Ausgabe ist:
A, b, c, d, e,aufsteigend sortiert. Das Programm beginnt mit der Aufnahme der iostream -Bibliothek. Dies ist für die Verwendung mit dem Terminal (Konsole) erforderlich. Die nächste Zeile ist eine weitere Richtlinie, die die festgelegte Bibliothek enthält. Die nachstehende Linie ist keine Richtlinie. Es ist eine Aussage, die mit einem Semikolon endet, der darauf besteht, dass jeder Name, dem nicht „std ::“ vorangegangen ist.
Auf die Header -Linien folgen die Funktion c ++ main (). Die erste Anweisung in der Hauptfunktion deklariert den Satz „weniger“ als zweite Vorlagenspezialisierung. Das zweite Codesegment zeigt die Werte des Satzes an, die eine interne Sortierung durch c angemessen hätten++.
Set sortiert abfällt
Um ein Set -sortiert abzusteigen, muss die zweite Spezialisierung einbezogen werden. Es ist "größer", wobei "Schlüssel" durch den Datentyp ersetzt wird. Weniger und größer sind vordefinierte Funktionen in der festgelegten Bibliothek. Das folgende Programm führt zu einem Satz, der sortiert wird:
#enthaltenDie Ausgabe ist:
E, d, c, b, a,sortiert absteigend. Das Programm beginnt mit der Aufnahme der iostream -Bibliothek. Dies ist für die Verwendung mit dem Terminal (Konsole) erforderlich. Die nächste Zeile ist eine weitere Richtlinie, die die festgelegte Bibliothek enthält. Die nachstehende Linie ist keine Richtlinie. Es ist eine Aussage, die mit einem Semikolon endet und darauf besteht, dass jeder Name, dem nicht „std ::“ vorangegangen ist.
Auf die Header -Linien folgen die Funktion c ++ main (). Die erste Anweisung in der Hauptfunktion deklariert den Satz „größer“ als zweite Vorlagenspezialisierung. Das zweite Codesegment zeigt die Werte des Satzes an, die eine interne Sortierung durch c angemessen hätten++.
Beobachter
Die Syntaxen für die Set -Beobachter sind:
KEY_COMPare Key_Comp () const;Und
value_compare value_comp () const;Die Ausgabe ist: 1 für wahr.
key_comp () ist eine Mitgliedsfunktion der festgelegten Klasse. Es erfordert kein Argument. Es gibt ein Funktionsobjekt zurück, das eine Funktion ist, die zwei Argumente nimmt. Das Funktionsobjekt (Aufruf) wird in der obigen zweiten Anweisung als „ST) identifiziert.Key_Comp () () ”. Es wird erwartet.
Wenn sein erstes Argument im Set nach der internen Sortierung an erster Stelle steht, wird das Funktionsobjekt wahr zurückgegeben. Andernfalls gibt es false zurück. Alles, was in der obigen zweiten Anweisung codiert wird.
Wenn die Spezialisierung der Vergleichsvorlage „größer“ gewesen wäre, wäre die Ausgabe 0 für False gewesen.
value_compare value_comp () const;Dies betrifft die Werte des Satzes von Schlüssel-/Wertpaaren - siehe später.
Abschluss
Nachdem Elemente in einen Set in C ++ eingefügt wurden, werden sie sofort intern sortiert. Wenn die Spezialisierung der Vergleichsvorlage „weniger“ ist, was die Standardeinstellung ist und weggelassen werden kann, wird die Sortierung aufsteigend erfolgen. Wenn es „größer“ ist, wird die Sortierung absteigen. "Schlüssel" in diesen Ausdrücken wird durch die Art der Werte im Satz ersetzt. Die Werte sind von einem Typ.
Ein Set benötigt also keine Sortierelementfunktion, da die Werte immer sortiert sind. Wenn ein Satz mit einigen ersten Elementen erstellt wird, werden diese Elemente sortiert. Ein Einsatz eines Elements danach führt dazu. Die Werte eines festgelegten Satzes werden als Schlüssel bezeichnet. Einige Sets können jedoch Schlüssel-/Wertpaare haben - siehe später.