Проблемы с пониманием этого фрагмента кода - PullRequest
0 голосов
/ 11 июля 2020

Я наткнулся на этот фрагмент кода, и мне трудно понять, что он делает и как его использовать.

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)>), это было бы здорово.

Спасибо.

...