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.