For STL containers, no. The standard table 96 in [container.requirements.general], which lists the container requirements for any container X , explains this quite clearly:

However, for basic_string , size_type is defined as
typedef typename allocator_traits<Allocator>::size_type size_type;
which in turn will be size_t for std::allocator<..> as a distributor.
In addition, std::array uses size_t as size_type , according to [array.overview] / 3.
source share