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

  • otro
    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 el nombre de tipo asignador<_Otro>, dado el nombre de tipo asignador<tipo>.

Por ejemplo, dado un asignador el objeto el de acon 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: <memoria>

espacio de nombres: std

Vea también

Referencia

allocator Class