Лямбда в переменной в C++
Одну и ту же лямбду сохраняют в переменной
и вызывают по имени несколько раз,
с разными аргументами. Тип переменной
пишут через auto:
int main() {
auto mulBy3 = [](int n) {
return n * 3;
};
std::cout << mulBy3(2) << "\n"; // выведет 6
std::cout << mulBy3(5) << "\n"; // выведет 15
return 0;
}
Одна и та же лямбда подходит для разных данных. Проверку длины строки удобно держать в отдельной переменной:
int main() {
auto longEnough = [](std::string s) {
return s.length() >= 4;
};
std::cout << longEnough("go") << "\n"; // выведет 0
std::cout << longEnough("book") << "\n"; // выведет 1
return 0;
}
Тип переменной задает само тело лямбды, если параметры указаны явно:
int main() {
auto add5 = [](int n) {
return n + 5;
};
std::cout << add5(10) << "\n"; // выведет 15
return 0;
}
Сохраните в переменной negate
лямбду, которая меняет знак целого числа.
Выведите результаты для 7 и -4.
Сохраните в переменной wrap
лямбду со строковым параметром, которая
возвращает строку в круглых скобках.
Выведите результат для "item"
два раза подряд.