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