Lambdas w C ++

Lambdas w C ++
„Za pomocą ilustracji omówimy funkcje Lambda C ++ w tym artykule.

Możemy zdefiniować anonimowe instancje metody w instrukcjach Lambda C ++, które można następnie wykorzystać w linii lub dostarczyć jako parametry. Ponieważ nie będziemy musieli zastąpić operatora w innej klasie lub strukturze, są one znacznie bardziej skuteczne."

Składnia funkcji Lambda

Lambda Wprowadzenie [] w tym przypadku reprezentuje początek instrukcji Lambda, a lista argumentów [] jest identyczna z operatorem () metody standardowej.

Przykład nr 1

W tym przypadku opracowaliśmy podstawowy kod instrukcji C ++ Lambda, który wyświetla nazwę Niemiec.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
auto country = [] ()
Cout << "Germany";
;
kraj();
powrót 0;

Na początku programu dołączymy wymagany plik nagłówka i standardowy przestrzeń nazw. Następnie rozpoczynamy kodowanie wewnątrz funkcji Main (). Utworzymy metodę Lambda za pomocą słowa kluczowego „Auto”. Przypisamy zmienną „kraj” do metody Lambda. Następnie, używając zmiennej krajowej i operatora (), wywołaliśmy metodę Lambda. Ponadto użyliśmy oświadczenia „cout” do wydrukowania nazwy kraju. Przywołajmy się do funkcji Lambda. Ostatecznie po prostu wpisujemy polecenie „return 0”.

Przykład nr 2

Oświadczenia Lambda również wymagałyby argumentów, podobnie jak standardowa metoda. Tutaj skonstruowaliśmy metodę Lambda, która wyświetla sumę dwóch liczb. Następnie przywołano metodę Lambda z dwoma parametrami całkowitymi.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
auto add = [] (int x, int y)
Cout << "Sum of two numbers = " << x + y;
;
Dodaj (250, 69);
powrót 0;

Rozpoczynamy program, włączając bibliotekę . Następnie używamy standardowej przestrzeni nazw. Nazwimy funkcję Main (). Teraz tworzymy funkcję Lambda „Add”. Tutaj przekazujemy dwie zmienne jako argumenty tej funkcji. Instrukcja „cout” jest używana do wydrukowania suma tych określonych wartości. W następnym kroku nazywamy metodę Lambda. Ta metoda zawiera dwie liczby całkowite jako jej parametry. Na koniec musimy wprowadzić polecenie „return 0”.

Przykład nr 3

Tutaj skonstruowaliśmy metodę Lambda, aby określić zarówno średnią 2 liczby, jak i sumę 2 liczb. Zapewniając „S” jako trzeci parametr do Main (), możemy obliczyć sumę dwóch liczb. Nawet jeśli Lambda zapewnia w tym przypadku liczbę losową, konwersja podwójna jest wykonywana bezpośrednio. Średnia jest następnie obliczana za pomocą innego ciągu jako parametru:

#włączać
za pomocą przestrzeni nazw Std;
int main ()
auto op = [] (int i, int j, string op) -> Double
if (op == "s")
return i + j;

w przeciwnym razie
return (i + j) / 2.0;

;
int n_1 = 11;
int n_2 = 21;
auto s = op (n_1, n_2, „s”);
Cout << "Sum of two numbers= " << s << endl;
Auto średnia = op (n_1, n_2, „średnia”);
Cout << "Average = " << average;
powrót 0;

Zintegrujemy moduł dla funkcji wejściowych i wyjściowych. Funkcja Lambda zostanie utworzona w następnym kroku. Tutaj funkcja Lambda „OP” jest stosowana przez jej jawny typ zwrotu „podwójny”. Ta funkcja Lambda zwraca sumę lub średnią wartości. Zapewnimy dwie zmienne o typach danych liczb całkowitych i ciąg jako parametry funkcji Lambda.

Ponadto zastosowaliśmy oświadczenie „If”. Jeśli wartość zmiennej „op” jest równa suma liczb. Następnie zwraca wartość, dodając obie liczby. W przeciwnym razie zwraca średnią, dzieląc sumę liczb przez 2. Zainicjujemy dwie nowe zmienne i ustawiamy ich wartości. Używamy instrukcji „cout”, aby pokazać sumę. Teraz, aby uzyskać średnią wymaganych wartości, stosujemy funkcję Lambda „Średnia”. Podaliśmy liczby całkowite jako argumenty tej funkcji Lambda. Instrukcja „cout” zostanie wykorzystana do pokazania średniej wartości. Aby zakończyć kod, zastosujemy „zwrot 0”.

Przykład nr 4

Domyślnie metody Lambda nie są w stanie odzyskać zmiennych wciętej funkcji. Korzystamy z instrukcji przechwytywania, aby uzyskać dostęp do tych atrybutów. Jest to identyczne z wywoływaniem metody według wartości. Po skonstruowaniu Lambda w tym przypadku pobierana jest pierwotna wartość. Zmienna zawarta w argumencie Lambda zostanie w tym momencie odczytana tylko; Nie można tego zmienić.

Poniżej znajduje się przykład prostej funkcji Lambda z przechwytywaniem według wartości:

Zatem funkcja Lambda ma dostępność do zmiennej int „N” ze względu na początkowe „s”. Ponieważ int „n” nie zostanie odzyskany z korpusu Lambda, chyba że wyeliminujemy go z klauzuli przechwytywania, wówczas znajdziemy błąd.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
int inicial_s = 389;
auto add_to_s = [inicitial_s] (int n)
return inicial_s + n;
;
int final_s = add_to_s (45);
Cout << "389 + 45 = " << final_s;
powrót 0;

Przede wszystkim w przypadku procesów wejściowych i wyjściowych plik nagłówka zostanie uwzględniony. Wraz z tym standardowym przestrzeni nazw. Teraz nazywamy funkcję main (). W ramach funkcji main (. W tej zmiennej określamy wartość „389”. Następnie przechwytujemy zmienną „inicial_s” według jej wartości. Dlatego używamy funkcji Lambda „add_to_s”. Przekażemy dwie zmienne jako parametr funkcji Lambda.

Pierwszy parametr pokazuje zmienną „inicial_s”, a drugi parametr pokazuje zmienną „N”. Suma będzie przechowywana w zmiennej „final_s”. Typ danych tej zmiennej to liczba całkowita. Przed dodaniem polecenia „Return 0” musimy użyć instrukcji „Cout”. Instrukcja „cout” pokazuje wynikową wartość.

Wniosek

Pod przewodnikiem C ++ Lambda Instrukcja. Nowe pojęcie w C ++, wykonanie wbudowane, jest bardzo przydatne, gdy tylko potrzebujemy uruchomić krótki kawałek kodu. Dodatkowo Lambdas może być deklarowany ogólny i zastosowany do dowolnego rodzaju danych. Ten artykuł zawiera cztery osobne przypadki, które w pełni wdrożyliśmy. Funkcja Lambda jest używana bez żadnych argumentów w pierwszej kolejności. W drugim przykładzie podajemy metodę Lambda z różnymi parametrami. Podobnie zastosowaliśmy jawny typ zwrotu metody Lambda w trzecim scenariuszu. Funkcja Lambda i klauzula przechwytywania zostały użyte w ostatnim.