I thought it works like deallocating element of _Count
from memory block _Ptr points.
So If there are blocks allocated 5 elements and ptr points this block's first.
and when I call deallocate(ptr, 2), just deleted ptr, ptr+1.
but actually, whatever I give a number as _Count, It deallocates whole space allocated.
The allocator is not required to store the size of the allocated block; the idea is to minimise the overhead (for example, in a pool allocator implementation).
Since users of the allocator would always know the size passed to allocate(), it is easy for them to provide the correct information when calling deallocate().