我的问题如下:给定一个容器 X = {x 1 , x 2 , ...,x n } 和一个 function ,找到f(x i ) 达到最小值f
的索引。i
当然,我可以从头开始实现它,但我有一种我发明了自行车的感觉,所以我正在寻找使用标准或增强算法的更短代码。我能得到的最好的是
template <typename Val>
Val f(Val)
{
.........
}
template <typename It>
It find_minimum(It begin, It end)
{
return std::min_element(begin, end,
[](typename It::value_type val1, typename It::value_type val2)
{
return f(val1) < f(val2);
});
}
但它存在f
被评估 2N-1 次的问题。