1) Если я хочу, чтобы набор сохранял элементы в порядке убывания, я мог бы написать:
set<int, greater<int>> s;
, но я также могу
set<int, greater<>> s;
как это понимает компилятор?
2) Почему в следующем случае
vector<int> a;
binary_search(a.begin(), a.end(), 5, greater<>());
мне нужно написать больше <> () вместо больше <> . Это имеет какую-то причину, почему это нельзя сделать везде одинаково?