[container.requirements.pre]
23 Containers library [containers]
23.2.1 Preamble [container.requirements.pre]
Containers are objects that store other objects.
They control allocation and deallocation of these objects through constructors, destructors, insert and erase operations.
All of the complexity requirements in this Clause are stated solely in terms of the number of operations on the contained objects.
Allocator-aware containers ([container.alloc.reqmts]) other than basic_string construct elements using the function allocator_traits<allocator_type>::rebind_traits<U>::construct and destroy elements using the function allocator_traits<allocator_type>::rebind_traits<U>::destroy ([allocator.traits.members]), where U is either allocator_type::value_type or an internal type used by the container.
These functions are called only for the container's element type, not for internal types used by the container.