C++ Lambda Expressions

🔹 C++ Lambda Expressions – Tiny Functions on the Fly

Imagine writing a quick function without leaving your spot in the code. That’s exactly what lambda expressions let you do!

They’re short, powerful, and super handy for one-time use – like passing a function into another function! 🎯

📌 Basic Syntax

[capture] (parameters) { body }
  • capture: What variables to grab from the surrounding scope
  • parameters: Like a normal function’s input
  • body: What the lambda should do

🧪 Example: Simple Lambda

#include <iostream>
using namespace std;

int main() {
    auto sayHello = []() {
        cout << "Hello from a lambda!" << endl;
    };

    sayHello(); // Call the lambda
    return 0;
}
  

Try It Now

🔢 Example: Lambda with Parameters

#include <iostream>
using namespace std;

int main() {
    auto add = [](int a, int b) {
        return a + b;
    };

    cout << "Sum: " << add(3, 4) << endl;
    return 0;
}
  

Try It Now

🔍 Capturing Variables

You can grab outside variables into the lambda using capture lists:

  • [x] – capture x by value
  • [&x] – capture x by reference
  • [=] – capture everything by value
  • [&] – capture everything by reference

📎 Example: Capture in Action

#include <iostream>
using namespace std;

int main() {
    int base = 10;

    auto addBase = [base](int x) {
        return base + x;
    };

    cout << "Result: " << addBase(5) << endl;
    return 0;
}
  

Try It Now

✅ Summary

  • Lambda expressions = mini functions created on-the-spot.
  • Use them when you need a quick action, like inside loops or algorithms.
  • They can capture variables from the outer scope.