Можно ли использовать стандартное ::накопление со стандартным ::мин?

Я пытаюсь объединить 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++.

19
задан Leonid Volnitsky 4 February 2013 в 13:42
поделиться