РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
28 of 815 menu

Лямбда-выражение

Лямбда-выражение - это анонимная функция, которую можно объявить прямо в том месте кода, где она используется. Лямбда состоит из списка захвата, списка параметров, спецификатора и тела. В списке захвата указывается, какие внешние переменные доступны внутри лямбды: [] - ничего не захватывается, [x] - захват переменной x по значению, [&x] - захват переменной x по ссылке, [=] - захват всех используемых переменных по значению, [&] - захват всех используемых переменных по ссылке.

Синтаксис

[capture](params) -> return_type { body }

Пример

Давайте создадим простую лямбду, которая принимает два числа и возвращает их сумму:

#include <iostream> using namespace std; int main() { auto sum = [](int a, int b) { return a + b; }; cout << sum(2, 3) << endl; return 0; }

Результат выполнения кода:

5

Пример

Давайте захватим внешнюю переменную по значению и используем её внутри лямбды:

#include <iostream> using namespace std; int main() { int x = 10; auto print = [x]() { cout << x << endl; }; print(); return 0; }

Результат выполнения кода:

10

Пример

Давайте захватим внешнюю переменную по ссылке и изменим её внутри лямбды:

#include <iostream> using namespace std; int main() { int x = 10; auto inc = [&x]() { x++; }; inc(); cout << x << endl; return 0; }

Результат выполнения кода:

11

Смотрите также

  • ключевое слово auto,
    которое часто используется для хранения лямбды
  • ключевое слово const,
    которое делает переменные неизменяемыми
  • оператор return,
    который возвращает значение из лямбды
  • конструкция range-for,
    которая часто используется вместе с лямбдами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить