cpp/named req/SequenceContainer

A is a  that stores objects of the same type in a linear arrangement.

Requirements
The type satisfies  if


 * The type satisfies, and

Given
 * , the element type of
 * , the allocator type of : if it exists, otherwise
 * , an rvalue expression of type
 * , a valid const iterator into
 * , a valid dereferenceable const iterator into
 * and, two const iterators into such that  is a valid range
 * and, s such that is a valid range and that the iterators refer to elements implicitly convertible to
 * , an object of type
 * , a value of type
 * , an lvalue or const rvalue of type
 * , a non-const rvalue of type
 * , a template parameter pack
 * , a function parameter pack with the pattern

The following expressions must be valid and have their specified effects for all sequence containers except std:

Optional operations
The following expressions must be valid and have their specified effects for the sequence containers named, all operations take amortized constant time:

Additionally, for every sequence container, the constructor template that takes two input iterators and the member function template overloads of, , , that take two input iterators do not participate in overload resolution if the corresponding template argument does not satisfy.