Satz (STL/CLR)
Die Vorlagenklasse beschreibt ein Objekt, das eine VARYING LENGTH-Folge von Elementen steuert, die bidirektionale Zugriff hat.Sie verwenden den Container set, um eine Sequenz von Elementen als A verwalten (fast) ausglichen geordneten Struktur von Knoten jedes speichernde ein Element.
In der unten GValue interaktiven Beschreibung, ist dasselbe wie GKey, das wiederum den gleichen Wert wie Key ist, es sei denn, das zweite ein ref-Typ ist. In diesem Fall wird Key^ ist.
template<typename Key>
ref class set
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
Parameter
- Schlüssel
Der Typ der Schlüsselkomponente eines Elements in der kontrollierten Sequenz.
Mitglieder
Typdefinition |
Beschreibung |
---|---|
Der Typ eines konstanten Iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Verweis auf ein Element. |
|
Der Typ eines konstanten umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ der Abstand (möglicherweise signiert) zwischen zwei Elementen. |
|
Der Typ der generischen Schnittstelle für den Container. |
|
Der Typ eines Iterators für die generische Schnittstelle für den Container. |
|
Der Typ eines umgekehrten Iterators für die generische Schnittstelle für den Container. |
|
Der Typ eines Elements für die generische Schnittstelle für den Container. |
|
Der Typ eines Iterators für die gesteuerte Sequenz. |
|
Der des Delegaten für Bestellungen für zwei Schlüssel. |
|
Der Typ einer Aufträge. |
|
Der Typ eines Verweises auf ein Element. |
|
Der Typ eines umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ (nicht negativ) Lücke A zwischen zwei Elementen. |
|
Der des Delegaten für Bestellungen für zwei Elementwerte. |
|
Der Typ eines Elements. |
Memberfunktion |
Beschreibung |
---|---|
Legt den Anfang der kontrollierten Sequenz fest. |
|
Entfernt alle Elemente. |
|
Zählt die Elemente, die einem angegebenen Schlüssel entsprechen. |
|
Überprüft, ob keine Elemente vorhanden sind. |
|
Legt das Ende der kontrollierten Sequenz fest. |
|
Durchsucht einen Bereich mit dem angegebenen Schlüssel übereinstimmt. |
|
Entfernt Elemente an den angegebenen Positionen. |
|
Sucht ein Element, der einem angegebenen Schlüssel entspricht. |
|
Fügt Elemente hinzu. |
|
Kopiert den Aufträgen Delegaten für zwei Schlüssel. |
|
Durchsucht den Anfang des Bereichs, der einem angegebenen Schlüssel entspricht. |
|
Erstellt ein Wertobjekt. |
|
Legt den Anfang der umgekehrten kontrollierten Sequenz fest. |
|
Legt das Ende der umgekehrten kontrollierten Sequenz fest. |
|
Erstellt ein Containerobjekt. |
|
Ermittelt die Anzahl der Elemente. |
|
Vertauscht den Inhalt von zwei Containern. |
|
Kopiert die gesteuerte Sequenz in ein neues Array. |
|
Sucht Ende des Bereichs, der einem angegebenen Schlüssel entspricht. |
|
Kopiert den Aufträgen Delegaten für zwei Elementwerte. |
Operator |
Beschreibung |
---|---|
Ersetzt die gesteuerte Sequenz. |
|
Bestimmt, ob ein set-Objekt nicht gleich einer anderen set-Objekt ist. |
|
Bestimmt, ob ein Objekt kleiner als ein anderes setset-Objekt ist. |
|
Bestimmt, ob ein set-Objekt kleiner oder gleich dem Wert eines anderen set-Objekt ist. |
|
Bestimmt, ob ein set-Objekt einem anderen Objekt entspricht. set |
|
Bestimmt, ob ein Objekt größer als ein anderes setset-Objekt ist. |
|
set Bestimmt, ob ein Objekt größer oder gleich einem anderen set-Objekt ist. |
Schnittstellen
Schnittstelle |
Beschreibung |
---|---|
Duplizieren Sie ein Objekt. |
|
Sequenz von Elementen. |
|
Behalten Sie unter ItemGroup. |
|
Sequenz von typisierten Elemente. |
|
Behalten Sie die Gruppe typisierte Elemente beibehalten. |
|
ITree<Schlüssel, Wert> |
Warten Sie generischen Container. |
Hinweise
Das Objekt wird auf und gibt Speicherplatz für die Sequenz frei, die er als einzelner Knoten steuert.Es fügt Elemente in ein (fast) ausglich Struktur angeordnet, dass sie beibehalten werden kann, indem die Links zwischen Knoten nie ändert, indem der Inhalt von einem Knoten auf einen anderen kopiert.Das bedeutet, dass Sie Elemente frei einfügen und löschen können, ohne übrigen Elemente zu beeinträchtigen.
Das Objekt sortiert die Sequenz, die er steuern, indem Sie ein gespeichertes Delegatobjekt des Typs set::key_compare (STL/CLR) aufruft.Sie können das gespeicherte Delegatobjekt angeben, wenn Sie die Menge erstellen. Wenn Sie kein Delegatobjekt angeben, wird standardmäßig der Vergleich operator<(key_type, key_type).Sie greifen auf das gespeicherte Objekt, indem Sie die Memberfunktion set::key_comp (STL/CLR)() aufrufen.
Solch ein Delegatobjekt muss eine strikte schwache Sortierung Schlüssel vom Typ set::key_type (STL/CLR) auferlegen.Das bedeutet, dass für alle zwei Schlüssel X und Y:
key_comp()(X, Y) gibt die gleiche boolesche Ergebnis auf jeden Aufruf zurück.
Wenn key_comp()(X, Y) auf true festgelegt ist, muss key_comp()(Y, X) falsch sein.
Wenn key_comp()(X, Y) auf true festgelegt ist, muss X vor Y geordnet.
Wenn !key_comp()(X, Y) && !key_comp()(Y, X) true ist, werden X und Y gesagt, um entsprechende Reihenfolge aufweisen.
Für jedes Element X, das Y in der kontrollierten Sequenz key_comp()(Y, X) vorangeht, ist falsch.(Für das standardmäßige Delegatobjekt, Wertminderung Schlüssel nie ab.) Im Gegensatz zu einer Vorlagenklasse Satz (STL/CLR), erfordert ein Objekt set der Vorlagenklasse nicht, dass der Schlüssel für alle Elemente eindeutig sind.(Zwei oder mehr Schlüssel können geeignete Reihenfolge aufweisen.)
Jedes Element wird als ey und Wert.Die Sequenz wird so dargestellt, die Suche, Einfügen und Löschen eines beliebigen Elements mit Operationen zulässt, die an den Logarithmus der Anzahl der Elemente in der Sequenz sind proportional (logarithmische Zeit).Darüber hinaus stellt keine ungültigen Einfügen eines Elements und Iteratoren Entfernen eines Elements für ungültig erklärt werden nur die Iteratoren, die am entfernten Element zeigen.
Ein Satz von unterstützt bidirektionale Iteratoren. Dies bedeutet, dass Sie den benachbarten angegebenen Elemente treten können ein Iterator, der eines Elements in der kontrollierten Sequenz.Ein spezieller Hauptknoten entspricht dem Iterator, der von set::end (STL/CLR)() zurückgegeben wurde.Sie können diesen Iterator verringern, um das letzte Element in der kontrollierten Sequenz erreicht hat, falls vorhanden.Sie können ein Iterator erhöhen, um den Hauptknoten zu erreichen, und vergleicht dann gleich end().Aber Sie können den Iterator, der von end() keine Dereferenzierung zurückgegeben wird.
Beachten Sie, dass Sie nicht direkt auf ein bestimmtes Element verweisen Sie können die numerische Position -- Das erfordert einen Iterator mit wahlfreier Zugriff.
Ein festgelegter Iterator speichert ein Handle für den zugeordneten festgelegten Knoten, der wiederum ein Handle für den zugeordneten Container speichert.Sie können Iteratoren nur mit den zugeordneten Containerobjekten verwenden.Ein festgelegter Iterator bleibt gültig, bis der zugehörige festgelegter Knoten mit einem Satz zugeordnet ist.Darüber hinaus ist ein gültiger Iterator dereferencable -- Sie können ihn verwenden, um den Elementwert zuzugreifen oder zu ändern, den er festgelegt wird -- solange er nicht gleich end() ist.
Entfernen oder Löschen eines Elements wird der Destruktor für den gespeicherten Wert an.Der Container zerstörend, löscht alle Elemente.Dies garantiert ein Container, dessen Elementtyp eine Verweisklasse wird, dass keine Elemente Überleben Container.Beachten Sie jedoch, dem ein Container, not Handle zerstört seine Elemente.
Anforderungen
Header: <cliext/Satz>
Namespace: cliext