W szczególności, klasa A, której zadaniem jest alokowanie pamięci dla obiektów typu T musi definiować następujące typy: A::pointer - typ wskaźnika do zaalokowanego obszaru pamięci A::const_pointer - typ stałego wskaźnika do zaalokowanego obszaru pamięci A::reference - typ referencji do zaalokowanego obszaru pamięci A::const_reference - typ stałej referencji do zaalokowanego obszaru pamięci A::value_type - typ obiektu dla którego alokator alokuje pamięć A::size_type - typ mogący przechować rozmiar największego możliwego do zaalokowania obszaru pamięci A::difference_type - typ mogący reprezentować różnicę pomiędzy dwoma dowolnymi wskaźnikami w danym modelu pamięci
Dodatkowo alokator A dla obiektów typu T musi posiadać zdefiniowaną metodę A::pointer A::allocate(size_type n, A<void>::const_pointer hint = 0). Metoda ta zwraca wskaźnik na pierwszy element zaalokowanej tablicy, która jest w stanie pomieścić co najmniej <n> obiektów typu T. Metoda ta alokuje tylko pamięć, nie jest odpowiedzialna za konstrukcje obiektów danego typu.