Я наткнулся на этот фрагмент кода, и мне трудно понять, что он делает и как его использовать.
int fstTrue(function<bool(int)> f, int lo, int hi) {
hi ++; assert(lo <= hi); // assuming f is increasing
while (lo < hi) { // find first index such that f is true
int mid = (lo+hi)/2;
f(mid) ? hi = mid : lo = mid+1;
}
return lo;
}
Если кто-нибудь может сказать мне, что он делает, а также как я бы использовал функция / вывести значение (поскольку я не понимаю, какие параметры принимает function<bool(int)>
), это было бы здорово.
Спасибо.