Freigeben über


multiset Class

Der Standard Template Library-multiset-Klasse wird für die Speicherung und Abruf von Daten aus einer Auflistung, in denen die Werte der enthaltenen Elemente nicht eindeutig sein müssen und in die sie als die Schlüsselwerte dienen, nach denen die Daten automatisch sortiert werden.Der Schlüsselwert des Elements in einer Multiset kann nicht direkt geändert werden.Stattdessen müssen die alten Werte gelöscht werden, und Elemente mit neuen Werten eingefügt.

template <
   class Key, 
   class Compare=less<Key>, 
   class Allocator=allocator<Key> 
>
class multiset

Parameter

  • Schlüssel
    Der Datentyp für die Element in der Multiset gespeichert werden.

  • Compare
    Der Typ, der ein Funktionsobjekt bereitstellt, die zwei Elementwerte als Sortierschlüssel, um ihre relative Reihenfolge in der Multiset bestimmen vergleichen können.Binäres Prädikat weniger<Key> ist der Standardwert.

  • Allocator
    Der Typ, der das gespeicherte Zuweisung-Objekt darstellt, das Informationen über die Zuweisung und Freigabe des Speichers der Multiset kapselt.Der Standardwert ist Zuweisung*<Key>.*

Hinweise

Die STL multiset-Klasse ist:

  • Ein assoziativer Container, die einen Container mit variabler Größe, der den effizienten Abruf von Elementwerte basierend auf einem zugeordneten Schlüsselwert unterstützt.

  • Umkehrbar, da es sich um bidirektionale Iteratoren Zugriff auf ihre Elemente bereitstellt.

  • Sortiert, da die Elemente von Schlüsselwerten innerhalb des Containers entsprechend einer angegebenen Vergleichsfunktion angeordnet werden.

  • Mehrere in den Sinn, den seine Elemente nicht müssen eindeutige Schlüssel haben damit einen Schlüsselwert viele Elementwerte zugeordnet haben.

  • Eine einfache assoziative Container da seine Elementwerte seine Schlüsselwerte sind.

  • Eine Vorlagenklasse, da dadurch die Funktionalität ist generisch und so unabhängig von den spezifischen Typ der Daten, die als Elemente enthalten.Der Datentyp zu verwendenden ist, stattdessen als Parameter in der Vorlage-Klasse zusammen mit der Vergleichsfunktion und Zuweisung angegeben.

Der Iterator der multiset-Klasse ist eine bidirektionale-Iterator, aber die Memberfunktionen der Klasse Legen Sie und Multiset Versionen, die als Vorlagenparameter schwächeren input-Iterator nehmen, deren Funktionalität mehr als durch die Klasse der bidirektionalen Iteratoren garantierte minimal sind.Die verschiedenen Iterator Konzepte bilden eine Familie von Verbesserungen in der Funktionalität.Jeder Iterator-Konzept hat seine eigenen Anforderungen und die Algorithmen, mit denen sie zusammenarbeiten müssen ihre Annahmen zu den Anforderungen nach Art der Iterator beschränken.Es kann angenommen werden, dass eine input-Iterator dereferenziert werden kann, um auf ein Objekt zu verweisen und es in der Reihenfolge der nächsten Iterator erhöht werden kann.Dies ist eine minimale Gruppe von Funktionen, aber es ist genug, um sinnvoll zu einer Reihe von Iteratoren sprechen können [_First, _Last) im Kontext von Memberfunktionen der Klasse.

Die Wahl von Containertyp sollte beruhen im Allgemeinen auf den Typ der Suche und Einfügen von der Anwendung benötigt.Assoziative Container sind optimiert für den Geschäftsbetrieb des Lookup, einfügen und entfernen.Die Memberfunktionen, die explizit diese Operationen unterstützen sind effizienter, sie in eine Zeit, die durchschnittlich proportional zu den Logarithmus von der Anzahl der Elemente im Container durchführen.Einfügen von Elementen keine Iteratoren ungültig, und Entfernen von Elementen ungültig macht nur die Iteratoren, die speziell auf die entfernten Elemente hingewiesen hatte.

Multiset sollten der assoziative Container Wahl, wenn die Bedingungen, die ihre Schlüssel zuordnen die Werte sind von der Anwendung erfüllt sein.Die Elemente einer Multiset möglicherweise mehrere und dienen als ihre eigenen Sortierschlüssel, so dass der Schlüssel nicht eindeutig sind.Ein Modell für diese Art von Struktur ist eine geordnete Liste von sagen, Wörter, in denen die Wörter mehr als einmal auftreten können.Hatte mehrere Vorkommen der Wörter nicht erlaubt wurde und dann ein Satz der entsprechenden Containerstruktur gewesen wäre.Wenn eindeutige Definitionen als Werte in die Liste der eindeutigen Schlüsselwörter angefügt wurden, wäre die Karte eine geeignete Struktur, die diese Daten enthalten.Wenn stattdessen die Definitionen nicht eindeutig, wäre eine Multimap den Container der Wahl.

Multiset ordnet die Sequenz, die steuert, durch Aufrufen einer gespeicherten Funktionsobjekt vom Typ Compare.Dieses gespeicherte Objekt ist eine Vergleichsfunktion, auf die zugegriffen werden kann, durch Aufrufen der Memberfunktion Key_comp.Im Allgemeinen müssen die Elemente lediglich weniger als vergleichbare herstellen dieser Bestellung werden: Damit zwei Elemente angegeben wird, kann bestimmt, dass sie (im Sinne, die weder kleiner als der andere ist) äquivalent sind, oder dass eine kleiner als die andere.Dies führt eine Sortierung zwischen den nonequivalent Elementen.Für eine weitere technische Anmerkung ist die Vergleichsfunktion ein binäres Prädikat, das eine strikte schwache im mathematischen Sinn standard Reihenfolge bedingt.Ein binäres Prädikat f(x,y) ist eine Funktionsobjekt, das zwei-Argument Objekte x und y und einen Rückgabewert von true oder false.Eine Sortierung auf die eine Gruppe ist eine strikte schwache bestellen, wenn das binäre Prädikat irreflexive, antisymmetrische und transitiv und wenn Gleichwertigkeit transitiv ist, wo zwei Objekte X und y äquivalent sein definiert sind beide f(X, y) und f(y, X) sind falsch.Wenn die stärkere Bedingung der Gleichstellung von Schlüsseln, die der Gleichwertigkeit ersetzt, gesamt (in dem Sinne, die alle Elemente in Bezug auf bestellt werden) wird die Reihenfolge, und die Schlüssel verglichen werden von einander unverständlich.

w5txk7zc.collapse_all(de-de,VS.110).gifKonstruktoren

MULTISET

Erstellt ein multiset also leer oder d. h. eine Kopie aller oder Teil eines angegebenen multiset.

w5txk7zc.collapse_all(de-de,VS.110).gifTypedefs

allocator_type

Ein Typedef für die allocator Klasse für die multiset Objekt.

const_iterator

Ein Typedef für einen bidirektionalen Iterator, das Lesen kann ein const Element in der multiset.

const_pointer

Ein Typedef für einen Zeiger auf eine const -Element in einem multiset.

const_reference

Ein Typedef für einen Verweis auf ein const Element gespeichert wird, einem multiset zum Lesen und ausführen const Operationen.

const_reverse_iterator

Ein Typedef für einen bidirektionalen Iterator, die jeder lesen kann const Element in der multiset.

difference_type

Eine Ganzzahl mit Vorzeichen Typedef für die Anzahl der Elemente von einer multiset in einem Bereich zwischen den Elementen auf Iteratoren.

Iterator

Ein Typedef für einen bidirektionalen Iterator, der lesen oder ändern ein Element in einem multiset.

key_compare

Ein Typedef für eine Funktionsobjekt, das Vergleichen von zwei Schlüsseln bestimmen die relative Reihenfolge von zwei Elementen in kann die multiset.

KEY_TYPE

Ein Typedef für eine Funktionsobjekt, das zwei Sortierschlüssel, um die relative Reihenfolge von zwei Elementen in bestimmen vergleichen kann die multiset.

pointer

Ein Typedef für einen Zeiger auf ein Element in einem multiset.

-Referenz

Ein Typedef für einen Verweis auf ein Element gespeichert werden, einem multiset.

reverse_iterator

Ein Typedef für einen bidirektionalen Iterator, der lesen oder ändern ein Elements in eine umgekehrte multiset.

size_type

Eine Ganzzahl ohne Vorzeichen, die die Anzahl der Elemente in darstellen, kann ein multiset.

value_compare

Der Typedef für eine Funktionsobjekt, das zwei Elemente als Sortierschlüssel, um ihre relative Reihenfolge in bestimmen vergleichen kann die multiset.

value_type

Eine Typedef, die ein Objekt als ein Element als gespeichert beschreibt eine multiset in seiner Eigenschaft als Wert.

w5txk7zc.collapse_all(de-de,VS.110).gifMethoden

begin

Gibt einen Iterator, auf das erste Element in verweist, der multiset.

clear

Löscht alle Elemente einer multiset.

count

Gibt die Anzahl der Elemente in einer multiset , dessen Schlüssel als Parameter angegebenen Schlüssel übereinstimmt.

empty

Testet, ob ein multiset ist leer.

end

Gibt einen Iterator, auf die Position hinter dem letzten Element in verweist, einer multiset.

equal_range

Gibt ein Paar von Iteratoren zurück.Der erste Iterator im Paar verweist auf das erste Element in einem multiset mit einem Schlüssel, der größer als ein angegebener Schlüssel ist.Der zweite Iterator im Paar verweist auf das erste Element in der multiset mit einem Schlüssel, der gleich oder größer als der Schlüssel.

Löschen

Entfernt ein Element oder einen Bereich von Elementen in einem multiset aus angegebenen Positionen oder entfernt Elemente, die einen angegebenen Schlüssel entsprechen.

find

Gibt einen Iterator, auf die erste Position eines Elements in verweist, einem multiset , die einen Schlüssel gleich einem angegebenen Schlüssel hat.

get_allocator

Gibt eine Kopie der allocator Objekt, das zum Erstellen der multiset.

Einfügen

Fügt ein Element oder einen Bereich von Elementen in einem multiset.

key_comp

Stellt eine Funktionsobjekt, das zwei Sortierschlüssel, um die relative Reihenfolge von zwei Elementen in bestimmen vergleichen kann die multiset.

lower_bound

Gibt einen Iterator das erste Element in einem multiset mit einem Schlüssel, der gleich oder größer als ein angegebener Schlüssel ist.

max_size

Gibt die maximale Länge der multiset.

rbegin

Gibt einen Iterator, auf das erste Element in eine umgekehrte verweist multiset.

rend

Gibt einen Iterator, auf den Speicherort verweist, das letzte Element in eine umgekehrte multiset.

size

Gibt die Anzahl der Elemente in einer multiset.

Swap

Tauscht die Elemente von zwei multisets.

upper_bound

Gibt einen Iterator das erste Element in einem multiset mit einem Schlüssel, der größer als ein angegebener Schlüssel ist.

value_comp

Ruft eine Kopie des Objekts Vergleich Reihenfolge Element Werten, in denen ein multiset.

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek

Weitere Ressourcen

Multiset Member

<set> Member