Each container adaptor takes
one or more template parameters
named
Container,
KeyContainer, or
MappedContainer
that denote the types of containers that the container adaptor adapts
. Each container adaptor has at least one constructor
that takes a reference argument to one or more such template parameters
. For each constructor reference argument to a container
C,
the constructor copies the container into the container adaptor
. If
C takes an allocator, then a compatible allocator may be passed in
to the adaptor's constructor
. Otherwise, normal copy or move construction is used for the container
argument
. For the container adaptors
that take a single container template parameter
Container,
the first template parameter
T of the container adaptor
shall denote the same type as
Container::value_type.