Не могу понять смысл этого кода - PullRequest
0 голосов
/ 08 мая 2020

Я не понимаю, что делает следующий код

auto sgn = [&](int x) 
{
        if (x > 0) return 1;
        else return -1;
};

Какую роль здесь играет амперсанд? Это указатель? И этот блок - это структура или что-то в этом роде?

Я наткнулся на этот блок кода в codeforces в редакции 636 Division 3.

1 Ответ

5 голосов
/ 08 мая 2020

Здесь & означает, что лямбда захватывает все переменные по ссылке.

Лямбда возвращает 1 или -1 в зависимости от значения аргумента x, поэтому захват действительно не на самом деле это не имеет значения.

...