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
Freigeben: 2024-06-04 20:31:01
Original
501 Leute haben es durchsucht

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 }
Nach dem Login kopieren
  • 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;
}
Nach dem Login kopieren

Ausgabe:

Hello
Lambda
World
Expression
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe:

3
6
9
Nach dem Login kopieren

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!

Verwandte Etiketten:
c++
Quelle:php.cn
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