Как работает функция min_element в stl ?
гуглил, что-то не выходит понять. Она если принимает третий параметр с двумя значениями, то этот параметр функтор, а значения ( int следующий, int текущий ) , верно???
я сделал return , но почему она не возвращает значения сразу , а только в конце? каким образом происходит сравнение?
написал код чтобы легче было ориентироваться
this->result = std::min_element(this->array.begin(), this->array.end(), [](int next, int current) {
int nextMod = (next < 0 ? next * (-1) : next);
int currentMod = (current < 0 ? current * (-1) : current);
std::cout << next << ' ' << current << " ::: nextMod < currentMod ::: " << (nextMod < currentMod) << endl;
return nextMod < currentMod;
});