Take a look at the old Herb Sutter column “Why aren't there container-based algorithms?”
The problem is that if you already have, for example,
template<class Iter> std::sort(Iter, Iter)
template<class Iter, class Pred> std::sort(Iter, Iter, Pred)
then entering
template<class Container> std::sort(Container)
template<class Container, class Pred> std::sort(Container, Pred)
++ 98 (1) (4): iterator a const_iterator sort(), (4) (1).
++ 11 SFINAE , , , , ++.