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

C++ Программирование и разработка

Лямбда-выражения — одна из самых мощных функций C++. Lambda представлена ​​в 11 -й версии C++, а также доступна в версиях C++ 14 и 17.

Всякий раз, когда нам нужен указатель на функцию в нашей программе, в этом конкретном случае мы можем использовать лямбда. Он предоставляет программисту на C++ дополнительные возможности для написания определения функции без определения самой функции. Теперь мы подробно обсудим концепцию лямбда-выражения.

Лямбда-синтаксис

Синтаксис лямбда в основном состоит из трех частей. Они есть

  1. []
  2. ()
  3. {}

Где [] называется списком захвата.

() называется аргументом функции.

{} называется телом функции.

Элементы лямбда

  • Список захвата: здесь мы пишем лямбда-выражение или функцию, все, что потребуется в программе.
  • Параметры: Это также известно как лямбда-декларация. Его можно использовать как необязательный случай.
  • Определение метода: Здесь мы объясняем, как функция будет вести себя в программе.

Определение и вызов функции

int main()
{
[] 90 {        // Capture list and Parameter.
cout<< “The coding and expression part of Lambda” << endl ;
} () ;      // Open and Close brace will invoke in lambda expression.
return 0 ;
}

Пример 1

#include<iostream>
using namespace std ;
struct trippleValue {       // Define a Function object .
int operator() ( int value ) {
return value * 3 ;
}
};

int main()
{
trippleValue tv ;  // Object Creation .
int t = tv( 2 ) ;
cout<< “ The Cube value is ” << t << endl ;
return 0 ;
}

Выход

Здесь мы хотим объяснить, где лямбда-выражения фактически

Объяснение

Здесь мы хотим объяснить, где лямбда-выражения фактически применяются к программе. Для этого здесь мы создаем функциональный объект с именем tv. Имя класса — trippleValue. Итак, мы создаем объект tv класса trippleValue, который будет получать значение и превращать его в значение куба. Внутри основной функции мы создаем объект tv и передаем значение 2. Теперь напечатайте значение t; он показывает результат 8. Потому что куб 2 равен 8.

Читайте также:  Побитовые операторы в C с примерами

Можно заметить, что в приведенной выше программе лямбда-выражения не используются. Теперь программа того же типа будет очень эффективно выполняться с помощью лямбда-выражения в следующей программе.

Пример 2

#include<iostream>
using namespace std ;
int main()
{
auto v = [] ( int value ) { return value * 2 ; } ;     // Lambda Expression are used here.
int t = v( 2 ) ;
cout<<  <<  t  << endl ;
return 0 ;
}

Выход

Можно заметить, что в приведенной выше программе лямбда

Пояснение

Теперь мы сделали ту же программу с помощью лямбда-выражения. Здесь мы объявляем переменную v, которая является переменной автоматического типа, где мы храним значение, которое вернет лямбда-выражение. Мы делаем этот расчет в одной строке. Теперь мы передаем значение 2 внутрь переменной v и сохраняем его внутри переменной t. В следующей строке программы мы просто печатаем переменную t. Он показывает результат 4. Поскольку мы возвращаем значение внутри лямбда-выражения как значение * 2.

Пример 3

#include<iostream>
#include<algorithm>
#include<vector>

int main()
{
std :: vector   vc { 10 , 20 , 30 , 40 } ;
std :: for_each( vc.begin() , vc end() , [] ( int n) {
cout<<  << n * n << endl ;
}) ;
return 0 ;
}

Выход

Здесь мы берем вектор с именем vc, который принимает

Объяснение

Здесь мы берем вектор с именем vc, который принимает некоторые значения 10, 20, 30 и 40. Мы хотим возвести в квадрат каждый элемент вектора. Для этого мы используем цикл for_each. Внутри скобок цикла for_each мы используем лямбда-выражение. Внутри его тела мы просто возводим эти векторные значения в квадрат.

Преимущества использования лямбды

  • Лямбда-выражение эффективно повышает читабельность программы.
  • Это уменьшает количество строк в коде, и программы становятся проще. В результате программисту становится легче писать меньше без кода.
  • Лямбда-выражение не вводит в программу никаких дополнительных новых имен или строк. Это повышает надежность программы.
  • Это также снижает временную сложность программы.
Читайте также:  Как перевернуть вектор в C++?

Вывод

Обсуждая детали концепции лямбда-выражения в C++, мы пришли к выводу, что это одна из мощных концепций C++. С помощью лямбда-выражения мы можем легко написать программный код эффективным образом. Если мы сможем понять концепцию лямбда и ее использование, то с помощью лямбда-выражения мы сможем очень легко решить многие вопросы программирования.

Оцените статью
bestprogrammer.ru
Добавить комментарий