allocator::rebind
Struktura, która umożliwia program przydzielania dla obiektów określonego typu, przydzielić pamięci masowej dla obiektów innego typu.
template<class _Other>
struct rebind {
typedef allocator<_Other> other;
};
Parametry
- inne
Typ elementu, dla którego przydzielenia pamięci.
Uwagi
Ta struktura jest przydatne w przypadku przydzielania pamięci dla typu, który różni się od typu elementu kontenera realizowany.
Członek szablonu klasy definiuje typ innych.Jej celem jest zapewnienie nazwy typu programu przydzielania<_innych>, biorąc pod uwagę nazwę typu programu przydzielania<typu>.
Na przykład, biorąc pod uwagę obiektu programu przydzielania al typu A, można przydzielić obiektu typu _Other z wyrażeniem:
A::rebind<Other>::other(al).allocate(1, (Other *)0)
Lub jego typ wskaźnika można nazwać pisząc typu:
A::rebind<Other>::other::pointer
Przykład
// 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);
}
Wymagania
Nagłówek: <pamięć>
Przestrzeń nazw: std