Partager via


allocator::rebind

Une structure qui permet à un allocateur pour les objets d'un type d'allouer de la mémoire pour les objets d'un autre type.

template<class _Other>
   struct rebind {
   typedef allocator<_Other> other;
   };

Paramètres

  • autres
    Le type d'élément pour lequel la mémoire est allouée.

Notes

Cette structure est utile pour allouer de la mémoire pour le type qui est différent du type d'élément du conteneur est implémenté.

La classe de modèle membre définit le type autre.Son objectif est de fournir le type < _autred' allocatorde nom >, en fonction de le nom de type allocator<Type>.

Par exemple, étant donné un objet d'allocation al de type A, vous pouvez allouer un objet de type _Other avec l'expression :

A::rebind<Other>::other(al).allocate(1, (Other *)0)

Ou, vous pouvez nommer son type pointeur en écrivant un type :

A::rebind<Other>::other::pointer

Exemple

// allocator_rebind.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

typedef vector<int>::allocator_type IntAlloc;
int main( ) 
{
   IntAlloc v1Iter;
   vector<int> v1;

   IntAlloc::rebind<char>::other::pointer pszC =
      IntAlloc::rebind<char>::other(v1.get_allocator()).allocate(1, (void *)0);

   int * pInt = v1Iter.allocate(10);
}

Configuration requise

en-tête : <memory>

l'espace de noms : DST

Voir aussi

Référence

allocator Class