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.