How to use Lambdas In C++
Lambdas in C++ provide a way to define inline, one-time, anonymous function objects. These lambdas can be defined in a place where it is required to pass a function as an argument.
Example:
C++
// C++ program to pass the function as // parameter as a lambda expression #include <functional> #include <iostream> using namespace std; // Function that takes a pointer // to a function int invoke( int x, int y, function< int ( int , int )> func) { return func(x, y); } // Driver Code int main() { // Define lambdas for addition and // multiplication operation where // we want to pass another function // as a parameter // Perform Addition cout << "Addition of 20 and 10 is " ; int k = invoke(20, 10, []( int x, int y) -> int { return x + y; }); cout << k << '\n' ; // Perform Multiplication cout << "Multiplication of 20" << " and 10 is " ; int l = invoke(20, 10, []( int x, int y) -> int { return x * y; }); cout << l << '\n' ; return 0; } |
Addition of 20 and 10 is 30 Multiplication of 20 and 10 is 200
Passing a Function as a Parameter in C++
A function is a set of statements that take inputs, perform some specific computation, and produce output. The idea to use functions is to perform some commonly or repeatedly done tasks together and make a function so that instead of writing the same code again and again for different inputs.
The general form of a function is in the below format:
return_type function_name([ arg1_type arg1_name, ... ]) { // Perform Operations }
Passing a function as an argument is a useful concept in C++. This concept has already been used while passing a custom comparator function as an argument in std::sort() to sort a sequence of objects as per the need. In this article, we will discuss different ways to design functions that accept another function as an argument.
A function can be passed as a parameter with 3 approaches i.e.
- Passing as Pointer
- Using std::function<>
- Using Lambdas