Freigeben über


allocator-Klasse

Die Vorlagenklasse beschreibt ein Objekt, das die Speicherbelegung und -freigabe für Objektarrays des Typs Typ verwaltet. Ein Objekt der Klasse allocator ist das Standardzuweisungsobjekt, das in den Konstruktoren für einige Containervorlagenklassen in der C++-Standardbibliothek angegeben wird.

template <class Type> 
class allocator

Parameter

  • Typ
    Der Typ des Objekts, für den Speicher belegt oder freigegeben wird.

Hinweise

Alle Standardvorlagenbibliothekscontainer haben einen Vorlagenparameter diesen Standards in allocator. Vorlagenklasse allocator stellt einige Typdefinitionen, die relativ Fußgänger sind. Sie wirken sparsam wert das Definieren. Aber eine weitere Klasse mit denselben Member vielleicht interessantere Alternativen aus. Das Erstellen eines Containers mit einem Zuweisungsobjekt einer solchen Klasse gibt einzelnes Steuerelement zu Zuordnung und dem Freigeben von Elementen, die durch diesen Container gesteuert werden.

Beispielsweise Sie möglicherweise ein Zuweisungsobjekt Speicher in einem privaten Heap zu. Es Affinitätsmodells möglicherweise Speicher auf einem Heap zu breit und erfordert nicht dem Standard entsprechende Zeiger, auf die zugeordneten Objekte zuzugreifen. Er könnte auch an, von den Typdefinitionen gibt es an, dass auf Elemente, die durch besondere Accessorobjekte freigegebenen Arbeitsspeicher verwalten, oder ausführen automatische Garbage Collection zugegriffen werden. Daher sollte eine Klasse, die Speicher mithilfe eines Zuweisungsobjekts zuordnet, diese Typen zum Deklarieren des Zeigers verwenden und Objekte verweisen, z die Container in der C++-Standardbibliothek sind.

Wenn Sie von der allocator-Klasse berechnen, müssen Sie binden Sie erneut eine Struktur bereitstellen, deren _Other sind die neu-abgeleitete Klasse verweist.

Daher definiert eine Zuweisung die folgenden Typen:

In Typs geben dem Formular an, mit dem Zeiger und Verweise für zugehörige Elemente bearbeiten müssen. (allocator::pointer ist nicht notwendigerweise die gleiche wie Typ* für alle Zuweisungsobjekte, obwohl es diese offensichtliche Definition für Klasse allocator ist.)

Member

Konstruktoren

Zuweisung

Konstruktoren verwendet, um allocator-Objekte zu erstellen.

Typedefs

const_pointer

Ein Typ, der einen konstanten Zeiger auf den Typ des Objekts bereitstellt, verwaltete durch die Zuweisung.

const_reference

Ein Typ, der einen konstanten Verweis auf Typ des Objekts bietet, verwaltete durch die Zuweisung.

difference_type

Ein ganzzahliger Typ mit Vorzeichen, mit der der Unterschied zwischen Werten von Zeigern auf den Typ des Objekts darstellen kann, verwaltete durch die Zuweisung.

Zeiger

Ein Typ, der einen Zeiger auf den Typ des Objekts bereitstellt, verwaltete durch die Zuweisung.

Verweis

Ein Typ, der einen Verweis auf den Typ des Objekts bietet, verwaltete durch die Zuweisung.

size_type

Ein ganzzahliger Typ ohne Vorzeichen, der die Länge jeder Sequenz darstellen kann, der auf ein Objekt der Vorlagenklasse allocator zuordnen kann.

value_type

Ein Typ, der von der Zuweisung verwaltet wird.

Memberfunktionen

address

Sucht die Adresse eines Objekts, dessen Wert angegeben wird.

Zuordnen zu

Ordnet einen Speicherblock zu, der ausreicht, um eine angegebene Anzahl an Elementen mindestens zu speichern ist.

Konstrukt

Erstellt einen bestimmten Objekttyp an einer angegebenen Adresse, die mit einem angegebenen Wert initialisiert wird.

geben Sie frei

Gibt eine angegebene Anzahl Objekten vom Speicheranfang in einer angegebenen Position frei.

destroy

Ruft einen Objektdestruktor auf, ohne den Speicher freigeben, in dem das Objekt gespeichert wurde.

max_size

Gibt die Anzahl von Elementen des Typs Type zurück, die ein Objekt der Klasse allocator zugeordnet werden können, bevor der freie Arbeitsspeicher oben verwendet wird.

binden Sie erneut

Eine Struktur, die eine Zuweisung für Objekte aus einem Typ ermöglicht, Speicher für Objekte eines anderen Typs zuzuordnen.

Operatoren

operator=

Weist ein allocator-Objekt an einen anderen allocator-Objekt zu.

Anforderungen

Header: <Arbeitsspeicher>

Namespace: std

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Weitere Ressourcen

Belegungsfunktion Member

<memory> Member