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:
Zeiger verhält sich wie ein Zeiger auf Typ.
const_pointer verhält sich wie ein const-Feld Zeiger auf Typ.
Verweis verhält sich wie ein Verweis auf Typ.
const_reference verhält sich wie ein - in Typ.
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
Konstruktoren verwendet, um allocator-Objekte zu erstellen. |
Typedefs
Ein Typ, der einen konstanten Zeiger auf den Typ des Objekts bereitstellt, verwaltete durch die Zuweisung. |
|
Ein Typ, der einen konstanten Verweis auf Typ des Objekts bietet, verwaltete durch die Zuweisung. |
|
Ein ganzzahliger Typ mit Vorzeichen, mit der der Unterschied zwischen Werten von Zeigern auf den Typ des Objekts darstellen kann, verwaltete durch die Zuweisung. |
|
Ein Typ, der einen Zeiger auf den Typ des Objekts bereitstellt, verwaltete durch die Zuweisung. |
|
Ein Typ, der einen Verweis auf den Typ des Objekts bietet, verwaltete durch die Zuweisung. |
|
Ein ganzzahliger Typ ohne Vorzeichen, der die Länge jeder Sequenz darstellen kann, der auf ein Objekt der Vorlagenklasse allocator zuordnen kann. |
|
Ein Typ, der von der Zuweisung verwaltet wird. |
Memberfunktionen
Sucht die Adresse eines Objekts, dessen Wert angegeben wird. |
|
Ordnet einen Speicherblock zu, der ausreicht, um eine angegebene Anzahl an Elementen mindestens zu speichern ist. |
|
Erstellt einen bestimmten Objekttyp an einer angegebenen Adresse, die mit einem angegebenen Wert initialisiert wird. |
|
Gibt eine angegebene Anzahl Objekten vom Speicheranfang in einer angegebenen Position frei. |
|
Ruft einen Objektdestruktor auf, ohne den Speicher freigeben, in dem das Objekt gespeichert wurde. |
|
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. |
|
Eine Struktur, die eine Zuweisung für Objekte aus einem Typ ermöglicht, Speicher für Objekte eines anderen Typs zuzuordnen. |
Operatoren
Weist ein allocator-Objekt an einen anderen allocator-Objekt zu. |
Anforderungen
Header: <Arbeitsspeicher>
Namespace: std
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek