Heim > Backend-Entwicklung > C++ > Hauptteil

Die Bedeutung der Lambda-Funktion in C/C++

WBOY
Freigeben: 2023-09-02 19:33:08
nach vorne
1428 Leute haben es durchsucht

Die Bedeutung der Lambda-Funktion in C/C++

Lambda-Funktion – Eine Lambda-Funktion ist eine Inline-Funktion, die keine Implementierung außerhalb des Rahmens des Hauptprogramms erfordert.

Die Lambda-Funktion kann auch als Wert einer zu speichernden Variablen verwendet werden. Lambdas können Objekte (sogenannte Funktoren) genannt werden, die von Funktionen aufgerufen werden können.

Immer wenn der Compiler auf die Definition einer Lambda-Funktion stößt, erstellt er normalerweise ein benutzerdefiniertes Lambda-Objekt.

Lambda-Funktion verfügt über mehr Funktionen als eine normale Funktion, zum Beispiel verfügt sie über eine Erfassungsmethode zum Erfassen der verwendeten Variablen. Erfasste Variablen werden jedoch als Mitglieder des Objekts behandelt.

Manchmal wird eine Lambda-Funktion auch als „Funktionsobjekt“ bezeichnet, sie hat ihren eigenen Gültigkeitsbereich und kann als Parameter innerhalb einer normalen Funktion übergeben werden. Funktion. Lambda-Funktionen haben ihren eigenen Lebenszyklus.

[ ] – Capture

( ) – Parameter (optional)

– Rückgabewert (optional)

{...} – Funktionskörper.

Lambda-Syntax

[ ]( int a) -> int { return a-1 ;};
Nach dem Login kopieren

Capture – Capture ist eine Klausel, über die eine Lambda-Funktion auf Variablen zugreifen kann, die in einem bestimmten Bereich oder verschachtelten Block verfügbar sind.

Wir können einen bestimmten Wert erfassen, indem wir zwei Methoden verwenden, um die verfügbaren Variablen abzurufen:

  • Ein Objekt nach Namen erfassen – Durch das Erfassen eines Objekts nach Namen wird mithilfe einer Lambda-Funktion eine lokale Kopie des Objekts generiert.

Wir können dieses Konzept anhand des folgenden Beispiels verstehen:

int main(){
   set s;
   //Adding the elements to set
   int i=20;
   for_each(s.begin(),s.end(), [i](T& elem){
      cout<<elem.getVal()*i<<endl;
   }
}
Nach dem Login kopieren

Im obigen Beispiel wird der Wert erfasst, indem eine lokale Kopie der Lambda-Funktion erstellt wird.

  • Erfassen von Objekten per Referenz – Durch das Erfassen von Objekten per Referenz können Sie den Kontext einer Lambda-Funktion manipulieren. Daher kann sich der von einem Funktionsobjekt oder einer Lambda-Funktion erfasste Wert ändern.

Wir können dies anhand des folgenden Beispiels verstehen:

int main(){
   sets;
   //Adding elements to the set
   int result=0;
   for_each(s.begin(),s.end(), [&result](&T elem){ result+= elem.getVal();});
   cout<<result<<endl;
}
Nach dem Login kopieren

Lambda innerhalb der Mitgliedsfunktion

Wir wissen, dass die Lambda-Funktion als Parameter in jeder normalen Funktion verwendet werden kann. Zum Beispiel

class func{
public:
   func(set<T>s): s1(s){}
   void func(){
      remove_if(s1.begin(),s1.end(), [this](int i) ->bool {return (i<level);});
   }
private:
   set<T>s1;
   int result;
};
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDie Bedeutung der Lambda-Funktion in C/C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage