Lambdas in C ++

Lambdas in C ++
„Mit Hilfe von Illustrationen werden wir C ++ Lambda -Funktionen in diesem Artikel diskutieren.

Wir können anonyme Methodeninstanzen in C ++ - Lambda -Anweisungen definieren, die dann als Parameter verwendet oder als Parameter geliefert werden können. Da wir den Bediener in einer anderen Klasse oder Struktur nicht außer Kraft setzen müssen, sind sie viel effektiver.”

Syntax der Lambda -Funktion

Der Lambda -Einführer [] in diesem Fall stellt den Beginn der Lambda -Anweisung dar, und die Argumentliste [] ist mit dem () Operator einer Standardmethode identisch.

Beispiel Nr. 1

In diesem Fall haben wir einen grundlegenden C ++ Lambda -Anweisungscode zusammengestellt, der den Namen Deutschlands anzeigt.

#enthalten
Verwenden von Namespace STD;
int main ()
Auto Country = [] ()
Cout << "Germany";
;
Land();
Rückkehr 0;

Wir werden zu Beginn des Programms die erforderliche Header -Datei und den Standardnamenspace einschließen. Dann starten wir die Codierung in der Funktion main (). Wir erstellen eine Lambda -Methode, indem wir das Schlüsselwort "automatisch" verwenden. Wir werden der Lambda -Methode das Variable „Land“ zuweisen. Wenn wir dann die Ländervariable und den () Operator verwenden, haben wir die Lambda -Methode aufgerufen. Darüber hinaus haben wir die Aussage „Cout“ verwendet, um den Namen des Landes zu drucken. Rufen wir die Lambda -Funktion auf. Am Ende geben wir einfach den Befehl "return 0" ein.

Beispiel Nr. 2

Lambda -Aussagen würden auch Argumente erfordern, genau wie eine Standardmethode. Hier haben wir eine Lambda -Methode erstellt, die die Summe von zwei Zahlen anzeigt. Die Lambda -Methode wurde dann mit zwei Ganzzahlparametern aufgerufen.

#enthalten
Verwenden von Namespace STD;
int main ()
auto add = [] (int x, int y)
Cout << "Sum of two numbers = " << x + y;
;
add (250, 69);
Rückkehr 0;

Wir beginnen das Programm, indem wir die Bibliothek einbeziehen . Dann verwenden wir den Standard -Namespace. Wir werden die Funktion main () nennen. Jetzt erstellen wir eine Lambda -Funktion von "Add". Hier passieren wir zwei Variablen als Argumente dieser Funktion. Die Anweisung „Cout“ wird verwendet, um die Summe dieser angegebenen Werte zu drucken. Im nächsten Schritt nennen wir die Lambda -Methode. Diese Methode enthält zwei Ganzzahlen als Parameter. Zuletzt müssen wir den Befehl 'return 0' eingeben.

Beispiel Nr. 3

Hier haben wir eine Lambda -Methode erstellt, um sowohl den Durchschnitt von 2 Zahlen als auch die Summe von 2 Zahlen zu bestimmen. Durch Bereitstellen von „S“ als dritter Parameter für Main () können wir die Summe von zwei Zahlen berechnen. Auch wenn die Lambda in diesem Fall eine Zufallszahl anbietet. Der Durchschnitt wird dann berechnet, indem eine andere Zeichenfolge als Parameter verwendet wird:

#enthalten
Verwenden von Namespace STD;
int main ()
auto op = [] (int i, int j, string op) -> double
if (op == "S")
Rückkehr i + j;

anders
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 durchschnittlich = op (n_1, n_2, "durchschnitt");
Cout << "Average = " << average;
Rückkehr 0;

Wir werden das Modul für Eingabe- und Ausgangsfunktionen integrieren. Die Lambda -Funktion wurde im nächsten Schritt erstellt. Hier wird die Lambda -Funktion "OP" durch den expliziten Rückgabetyp "Double" angewendet. Diese Lambda -Funktion gibt die Summe oder den Durchschnitt der Werte zurück. Wir werden zwei Variablen mit einem Ganzzahl -Datentyp und einer Zeichenfolge als Parameter der Lambda -Funktion bereitstellen.

Darüber hinaus haben wir die Erklärung "if" angewendet. Wenn der Wert der Variablen „OP“ gleich der Summe der Zahlen ist. Dann gibt es den Wert zurück, indem beide Zahlen hinzugefügt werden. Andernfalls kehrt es den Durchschnitt zurück, indem die Summe der Zahlen durch 2 geteilt wird. Wir initialisieren zwei neue Variablen und setzen ihre Werte. Wir verwenden die Anweisung "Cout", um die Summe anzuzeigen. Um nun den Durchschnitt der erforderlichen Werte zu erhalten, wenden wir die Lambda -Funktion „Durchschnitt“ an,. Wir haben die Ganzzahlen als Argumente für diese Lambda -Funktion gegeben. Die Anweisung „Cout“ wird verwendet, um den Durchschnittswert anzuzeigen. Um den Code zu beenden, werden wir "Return 0" verwenden.

Beispiel Nr. 4

Standardmäßig sind Lambda -Methoden nicht in der Lage, die Variablen der eingedrückten Funktion abzurufen. Wir verwenden die Capture -Anweisung, um Zugriff auf diese Attribute zu erhalten. Dies ist identisch mit dem Aufrufen einer Methode nach Wert. Wenn die Lambda in diesem Fall gebaut wird, wird der ursprüngliche Wert genommen. Die in das Lambda -Argument enthaltene Variable wird zu diesem Zeitpunkt nur gelesen. Es kann nicht geändert werden.

Das Folgende ist ein Beispiel für eine einfache Lambda -Funktion mit Erfassung nach Wert:

Somit ist die Lambda -Funktion aufgrund der anfänglichen „S“ -Variable für die int „n“ -Variable zugänglich. Da int „n“ nicht aus dem Lambda -Körper abgerufen wird, es sei denn.

#enthalten
Verwenden von Namespace STD;
int main ()
init initial_s = 389;
auto add_to_s = [initial_s] (int n)
Rückgabe initial_s + n;
;
int final_s = add_to_s (45);
Cout << "389 + 45 = " << final_s;
Rückkehr 0;

Zuallererst wird die Header -Datei für Eingabe- und Ausgabeprozesse enthalten. Zusammen mit diesem Standard -Namespace wird hinzugefügt. Wir nennen jetzt die main () -Funktion. Innerhalb des Körpers der main () -Funktion initialisieren wir eine Variable "initial_s". Wir geben den Wert „389“ für diese Variable an. Dann erfassen wir die Variable "initial_s" nach ihrem Wert. Daher haben wir die Lambda -Funktion von "add_to_s" verwendet. Wir werden zwei Variablen als Parameter an die Lambda -Funktion übergeben.

Der erste Parameter zeigt die Variable „initial_s“ und der zweite Parameter zeigt die Variable „n“. Die Summe wird in einer Variablen "Final_s" aufbewahrt. Der Datentyp dieser Variablen ist eine Ganzzahl. Vor dem Hinzufügen des Befehls "return 0" müssen wir die Anweisung "Cout" verwenden. Die Anweisung „Cout“ zeigt den resultierenden Wert.

Abschluss

Der C ++ - Lambda Statements Guide ist abgeschlossen. Der neue Begriff in C ++, Inline -Ausführung, ist sehr nützlich, wenn wir ein kurzes Code ausführen müssen. Darüber hinaus kann Lambdas generisch deklariert und auf alle Art von Daten angewendet werden. Dieser Artikel enthält vier separate Instanzen, die wir vollständig implementiert haben. Die Lambda -Funktion wird in erster Instanz ohne Argumente verwendet. Wir bieten die Lambda -Methode im zweiten Beispiel eine Vielzahl von Parametern. In ähnlicher Weise haben wir den expliziten Rückgabetyp der Lambda -Methode im dritten Szenario verwendet. Die Lambda -Funktion und die Erfassungsklausel wurden im letzten verwendet.