Partager via


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

allocateur

Constructeurs utilisés pour créer des objets allocator.

Typedef

const_pointer

Un type qui fournit un pointeur constant au type d'objets managés par l'allocateur.

const_reference

Un type qui fournit une référence constante au type d'objets managés par l'allocateur.

difference_type

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.

pointer

Un type qui fournit un pointeur au type d'objets managés par l'allocateur.

référence

Un type qui fournit une référence au type d'objets managés par l'allocateur.

type_taille

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.

type valeur

Un type qui est géré par l'allocateur.

Fonctions membres

address

Recherche l'adresse d'un objet dont la valeur est spécifiée.

allocate

Alloue un bloc de mémoire suffisamment grand pour stocker au moins un certain nombre spécifié d'éléments.

Construction

Construit un type d'objet à une adresse spécifiée qui est initialisé avec une valeur spécifiée.

libérer

Libère un nombre spécifié d'objets depuis le début de stockage à une position spécifiée.

détruire

Appelle un destructeur d'objets sans libérer la mémoire où l'objet a été enregistré.

max_size

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.

rebind

Une structure qui permet à un allocateur d'objets d'un type d'allouer le stockage des objets d'un autre type.

Opérateurs

operator=

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++

Autres ressources

membres d'allocateur

<memory> membres