Я пытаюсь объединить std::accumulate с std::min. Что-то вроде этого (не компилируется):
vector<int> V{2,1,3};
cout << accumulate(V.begin()+1, V.end(), V.front(), std::min<int>);
Возможно ли это?
Можно ли обойтись без написания функтора обертки для std::min?
Я знаю, что могу сделать это с помощью лямбда:
vector<int> V{2,1,3};
cout << std::accumulate(
V.begin()+1, V.end(),
V.front(),
[](int a,int b){ return min(a,b);}
);
И я знаю, что есть std::min_element. Я не пытаюсь найти элемент min, мне нужно объединить std::accumulate с std::min (или ::min) для моей библиотеки, которая позволяет программировать функции как выражения на С++.