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


allocator::rebind

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

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

Параметры

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

Заметки

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

Класс шаблона члена указывает тип другое.Его единственная цель предоставить >*** другое ***_AMPL_lT 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 Class