Why there is direct interface for initializer_list but not for other containers in std::max

  c++, c++11, c++14

To find the max element of any vector, we can use std::max_element(…) and then deference the returned iterator, or iterate over all the elements and use the std::max(const T& a, const T& b, Compare comp) function to get the maximum value.

If I see the interfaces defined for std::max, then we have

std::max (initializer_list<T> il, Compare comp)

but there isn’t anything for vector, array and list etc. We can try and convert the intended container into an initializer_list and then use this interface, but is there any specific reason why we don’t have something similar to this interface for other container classes?

Source: Windows Questions C++