Допустим, у нас есть класс A
, который может быть оценен как целое число.
В качестве входных данных мы получаем вектор A
, отсортированный по его значению evaluate()
.
Как найти верхнюю границу по оцененному значению?
Я пробовал это, но он не компилируется.
class A;
int evaluate(const A& a);
// ...
vector<A>::iterator foo(vector<A>& v, int k)
{
return upper_bound(v.begin(), v.end(), k,
[](const A& a, int k)
{
return evaluate(a) < k;
}
);
}