Поделиться через


allocator::rebind

Структура, которая позволяет распределитель объектов для одного типа выделить хранилище для объектов другого типа.

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

Параметры

  • other
    Тип элемента, для которого выделения памяти.

Заметки

Эта структура полезна для выделения памяти для типа, который отличается от, снабжанным типа элемента контейнера.

Класс шаблона члена указывает другое. Его единственная цель предоставить _Другой>allocator<имени типа, заданного типа allocator<имя Тип>.

Например, данные распределителю объект al типа A, можно выделить объект типа _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