次の方法で共有


allocator::rebind

別の型のオブジェクトにストレージを割り当てることは 1 種類のオブジェクトのアロケーターを有効にする構造体。

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

パラメーター

  • その他
    メモリが割り当てられている要素の型。

解説

この構造体は、を実装するコンテナーの要素型と異なる型のメモリを割り当てる場合に便利です。

メンバー テンプレート クラスは、他の型を定義します。その唯一の目的は >、型の名前 allocator<[種類]> は型の名前の allocatorの < _そのほかを提供することです。

たとえば、アロケーターの型 Aのオブジェクト al は、式の型 _Other のオブジェクトを代入する場合:

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

または、型を記述することにより、ポインター型を表示できます:

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

使用例

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

必要条件

ヘッダー : <memory>

名前空間: std

参照

関連項目

allocator Class