Freigeben über


allocator::rebind

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

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

Parameter

  • other
    Der Typ des Elements, für den Speicher belegt wird.

Hinweise

Diese Struktur ist zum Belegen für Typ sinnvoll, der aus dem Elementtyp des Containers unterscheidet, der implementiert wird.

Die Membervorlagenklasse definiert den Typ anderen. Sein einziger Zweck ist, das allocator<Typnamen _Andere>bereitzustellen, den Typnamen allocator<Typ>.

Beispielsweise ein Zuweisungsobjekt al vom Typ A übergeben, können Sie ein Objekt des Typs _Other mit der Wortfolge zuordnen:

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

Oder, Sie können seinen 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-Klasse