Avatar ·

Was ist ein Lambda-Ausdruck in C++ und wann sollte man ihn verwenden?

Hallo Kollegen! Ich habe angefangen, C++11 zu lernen und stoße ständig auf den Begriff "Lambda-Ausdruck" (lambda expression). Ich habe die Dokumentation gelesen, verstehe aber nicht ganz, was das ist und vor allem, wozu es gut ist. Hier ist ein Beispiel, das ich in einem Tutorial gefunden habe:
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    int multiplier = 3;

    // Was passiert hier?
    std::for_each(numbers.begin(), numbers.end(), [multiplier](int n) {
        std::cout << n * multiplier << " ";
    });
    return 0;
}
Ich verstehe, dass `std::for_each` eine Funktion auf jedes Element anwendet, aber mich verwirrt die Konstruktion `[multiplier](int n) { ... }`. Warum kann man nicht einfach schreiben