Я пытаюсь объединить 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
) для моей библиотеки, которая позволяет программировать функции как выражения на С++.