allocator, classe
La classe de modèle décrit un objet qui gère l'allocation de stockage et la libération des tableaux d'objets de type Type. Un objet de la classe allocator est l'objet d'allocation par défaut spécifié dans les constructeurs pour plusieurs classes du modèle de conteneur dans la bibliothèque C++ standard.
template <class Type>
class allocator
Paramètres
- Type
Le type d'objet pour lequel le stockage est alloué ou libéré.
Notes
Tous les conteneurs Standard Template Library (STL) ont un paramètre de modèle par défaut pour allocator. La classe de modèle allocator fournit plusieurs définitions de types qui sont plutôt sans intérêt. Elles valent à peine la peine d'être définies. Mais une classe avec les mêmes membres peut choisir des alternatives plus intéressantes. Construction d'un conteneur avec un objet d'allocation d'une telle classe permet de contrôler individuellement l'allocation et la libération des éléments contrôlés par ce conteneur.
Par exemple, un objet d'allocation peut allouer le stockage d'un segment de mémoire privée. Il peut allouer de la mémoire sur un segment de mémoire lointain, ce qui requiert que les pointeurs standard accèdent aux objets alloués. Il peut également spécifier, dans les définitions de type qu'il fournit, que les éléments sont pas accessibles via les objets modèle d'accesseur qui gèrent la mémoire partagée, ou effectuent le nettoyage automatique. Par conséquent, une classe qui alloue le stockage grâce à un objet d'allocation doit utiliser ces types pour déclarer les objets de pointeur et de référence, comme le font les conteneurs du bibliothèque C++ standard.
Lorsque vous dérivez de la classe d'allocateur, vous devez fournir une structure rebind, dont typedef _Other référence votre classe dérivée récemment.
Par conséquent, un allocateur définit les types suivants :
pointer se comporte comme un pointeur vers Type.
const_pointer se comporte comme un pointeur const vers Type.
référence se comporte comme une référence à Type.
const_reference se comporte comme une référence const à Type.
Ces Types spécifient le format que les pointeurs et les références doivent entreprendre pour les éléments alloués. (allocator::pointer n'est pas nécessairement identique à Type* pour tous les objets allocateurs, bien qu'il soit une définition évidente de la classe allocator.)
Membres
Constructeurs
Constructeurs utilisés pour créer des objets allocator. |
Typedef
Un type qui fournit un pointeur constant au type d'objets managés par l'allocateur. |
|
Un type qui fournit une référence constante au type d'objets managés par l'allocateur. |
|
Type intégral signé qui peut représenter la différence entre des valeurs des pointeurs vers le type d'objets géré par l'allocateur. |
|
Un type qui fournit un pointeur au type d'objets managés par l'allocateur. |
|
Un type qui fournit une référence au type d'objets managés par l'allocateur. |
|
Un type intégral non signé qui peut représenter la longueur de n'importe quelle séquence qu'un objet de classe de modèle allocator peut allouer. |
|
Un type qui est géré par l'allocateur. |
Fonctions membres
Recherche l'adresse d'un objet dont la valeur est spécifiée. |
|
Alloue un bloc de mémoire suffisamment grand pour stocker au moins un certain nombre spécifié d'éléments. |
|
Construit un type d'objet à une adresse spécifiée qui est initialisé avec une valeur spécifiée. |
|
Libère un nombre spécifié d'objets depuis le début de stockage à une position spécifiée. |
|
Appelle un destructeur d'objets sans libérer la mémoire où l'objet a été enregistré. |
|
Retourne le nombre d'éléments de type Type qui peuvent être alloués par un objet de l'allocateur de la classe allocator avant que la mémoire disponible ne soit utilisée. |
|
Une structure qui permet à un allocateur d'objets d'un type d'allouer le stockage des objets d'un autre type. |
Opérateurs
Affecte un objet allocator à un autre objet allocator. |
Configuration requise
En-tête : <memory>
Espace de noms : std
Voir aussi
Référence
Sécurité des threads dans la bibliothèque standard C++