【发布时间】:2013-07-18 09:59:38
【问题描述】:
std::min_element 将返回由operator<(T,T) 或自定义谓词bool Pred(T,T) 定义的最小元素。是否有类似的函数返回投影函数f(T)->R 取最小值的元素?
显然我可以定义bool Pred(t1,t2) { return f(t1) < f(t2); },但是当 f 是 lambda 时,这有点不方便。
【问题讨论】:
-
计算
f的导数。 好吧好吧,我知道那是个糟糕的玩笑 -
但是当银行使用衍生品时,它引发了金融危机更糟糕的笑话 :P
-
如果
f是一个 lambda,你可以将它传递给一个 C++1y 高阶多态 lambda[]( auto f ) { return [](auto t1, auto t2){ return f(t1) < f(t2); }; }(认为我平衡了括号。)当然这是计算量的两倍根据需要。 -
您是否正在寻找一种无需多次编写 投影
R(T)且不会弄乱外部范围的方法? -
@refp:这就是问题的要点。
标签: c++ algorithm c++11 iterator projection