I’m using list class in c++ and i don’t know what does allocator mean here
template < class T, class Allocator = allocator<T> > class list;
if i have list <int> mylist would it mean allocate integer type of memory using the allocator when an element is added to list? and when do you want a custom allocator?
Yes. An
allocatoris a way of factoring the allocation of memory from the use of memory. If a container needs some memory, instead of:You get:
There is a standard allocator,
std::allocator, which uses globaloperator newandoperator delete.You want to use your own allocator anytime you need to allocate in a special way. These cases may be: get memory from some freelist, allocate from the stack, etc. (Generally for optimization purposes, though you could also record statistics with a custom allocator) Most of the time, the standard allocator works perfectly.