我正在尝试std::accumulate
与std::min
. 像这样的东西(不会编译):
vector<int> V{2,1,3};
cout << accumulate(V.begin()+1, V.end(), V.front(), std::min<int>);
是否可以?是否可以不为 编写包装函子std::min
?
我知道我可以用 lambdas 做到这一点:
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++ 中的表达式一样进行函数编程。