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