Freigeben über


allocator::rebind

Eine Struktur, die eine Belegungsfunktion für Objekte von einem Typ ermöglicht, Speicher für Objekte eines anderen Typs zuzuordnen.

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

Parameter

  • weiteres
    Der Typ des Elements, für den Arbeitsspeicher zugeordnet ist.

Hinweise

Diese Struktur ist für die Speicherbelegung für Typ nützlich, der aus dem Elementtyp des Containers unterscheidet, der implementiert wird.

Die Membervorlagenklasse definiert den Typ "Andere".Sein einziger Zweck ist, den Typnamen allocator<_Andere> bereitzustellen, bei gegebenem Typnamen allocator<Typ>.

Beispielsweise ein allocator-Objekt al des Typs A angegeben, können Sie ein Objekt des Typs _Other mit dem Ausdruck zuordnen:

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

Oder Sie können den Zeigertyp benennen, indem Sie den Typ schreiben:

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

Beispiel

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

Anforderungen

Header: <memory>

Namespace: std

Siehe auch

Referenz

allocator Class