1) Uses the allocator a to allocate n*sizeof(Alloc::value_type) bytes of uninitialized storage, by calling a.allocate(n)

2) Uses the allocator a to allocate n*sizeof(Alloc::value_type) bytes of uninitialized storage with the memory locality hint hint. Calls a.allocate(n, hint) if possible. If not possible (e.g. a has no two-argument member function allocate()), calls a.allocate(n)