Heim >Backend-Entwicklung >C++ >Wie werden C++-Lambda-Ausdrücke in der funktionalen Programmierung verwendet?

Wie werden C++-Lambda-Ausdrücke in der funktionalen Programmierung verwendet?

WBOY
WBOYOriginal
2024-06-04 20:31:01484Durchsuche

C++-Lambda-Ausdruck ist ein praktisches funktionales Programmiertool. Die Syntax lautet: [capture_list] (parameter_list) -> return_type { body }Praktischer Fall: Sortieren: Sortieren der Wortliste nach Zeichenfolgenlänge. Filtern: Das Filtern ist durch 3 teilbar

C++ Lambda 表达式如何用于函数式编程?

C++-Lambda-Ausdruck: ein leistungsstarkes Werkzeug für die funktionale Programmierung

In C++ ist der Lambda-Ausdruck die bequemste Möglichkeit, einen Codeblock als Funktionsparameter zu übergeben oder einen Wert zurückzugeben. Ihre prägnante Syntax und leistungsstarke Funktionalität machen sie zu leistungsstarken Werkzeugen für die funktionale Programmierung.

Syntax

Lambda-Ausdrücke haben das folgende Syntaxformat:

[capture_list] (parameter_list) -> return_type { body }
  • capture_list: Erfassen Sie eine Liste externer Variablen, die im Lambda-Körper verwendet werden können.
  • parameter_list: Die Parameterliste der Lambda-Funktion.
  • return_type: Optionaler Rückgabetyp.
  • Körper: Lambda-Funktionskörper.

Übungsfall

1. Groß-/Kleinschreibung sortieren

Verwenden Sie den Lambda-Ausdruck, um die Wortliste nach Zeichenfolgenlänge zu sortieren:

#include <vector>
#include <algorithm>

int main() {
  std::vector<std::string> words = {"Hello", "World", "Lambda", "Expression"};

  std::sort(words.begin(), words.end(),
    [](const std::string& a, const std::string& b) {
      return a.size() < b.size();
    });

  for (const auto& word : words) {
    std::cout << word << "\n";
  }
  return 0;
}

Ausgabe:

Hello
Lambda
World
Expression

2. Groß-/Kleinschreibung filtern

Filtern Sie mögliche Liste von heraus Durch 3 teilbare Zahlen:

#include <vector>
#include <algorithm>

int main() {
  std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

  std::vector<int> filteredNumbers;
  std::copy_if(numbers.begin(), numbers.end(),
    std::back_inserter(filteredNumbers),
    [](int number) {
      return number % 3 == 0;
    });

  for (const auto& number : filteredNumbers) {
    std::cout << number << "\n";
  }
  return 0;
}

Ausgabe:

3
6
9

Das obige ist der detaillierte Inhalt vonWie werden C++-Lambda-Ausdrücke in der funktionalen Programmierung verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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