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