std::min_element
operator<(T,T)
またはカスタム predicate によって定義された最小の要素を返しbool Pred(T,T)
ます。f(T)->R
射影関数が最小値をとる要素を返す同様の関数はありますか?
明らかに定義できますbool Pred(t1,t2) { return f(t1) < f(t2); }
が、f がラムダの場合は少し不便です。
std::min_element
operator<(T,T)
またはカスタム predicate によって定義された最小の要素を返しbool Pred(T,T)
ます。f(T)->R
射影関数が最小値をとる要素を返す同様の関数はありますか?
明らかに定義できますbool Pred(t1,t2) { return f(t1) < f(t2); }
が、f がラムダの場合は少し不便です。
less_by
ラムダを取って、あなたのために仕事をするファンクターを返す述語ジェネレーターを定義しないのはなぜですか?
template <typename Proj>
struct less_by_t {
Proj p;
template <typename T>
bool operator ()(T const& a, T const& b) const {
return p(a) < p(b);
}
};
template <typename Proj>
less_by_t<Proj> less_by(Proj p) {
return {p};
}
auto result = std::min_element(begin, end, less_by([](T const& x){return …;}));