Compartir a través de


allocator::rebind

Una estructura que habilita un asignador para los objetos de un tipo para asignar almacenamiento para los objetos de otro tipo.

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

Parámetros

  • other
    El tipo de elemento que se está asignando memoria.

Comentarios

Esta estructura es útil para asignar memoria para el tipo que difiere del tipo de elemento de contenedor que se implementa.

La clase de plantilla miembro define el tipo otro. Su único propósito es proporcionar _Otro<>de allocatorel nombre de tipo, dado el nombre de tipo allocator<Tipo>.

Por ejemplo, dado un asignador el objeto al de Tcon tipo, puede asignar un objeto de _Other escrito con la expresión:

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

O, puede asignar al tipo de puntero escribiendo el tipo:

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

Ejemplo

// 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);
}

Requisitos

Encabezado: <memory>

Espacio de nombres: std

Vea también

Referencia

allocator (Clase)