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