Home > Backend Development > C++ > body text

How are C++ Lambda expressions used in functional programming?

WBOY
Release: 2024-06-04 20:31:01
Original
458 people have browsed it

C++ Lambda expression is a convenient functional programming tool. The syntax is: [capture_list] (parameter_list) -> return_type { body }Practical example: Sorting: Sorting the word list by string length Filter: Filtering can be 3 List of numbers that are divisible

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

C++ Lambda expression: a powerful tool for functional programming

In C++, lambda expression is the most convenient way to pass Code blocks are returned as function arguments or values. Their concise syntax and powerful functionality make them powerful tools for functional programming.

Syntax

lambda expressions have the following syntax format:

[capture_list] (parameter_list) -> return_type { body }
Copy after login
  • capture_list: Capture a list of external variables that can be used inside the lambda body .
  • parameter_list: The parameter list of the lambda function.
  • return_type: Optional return type.
  • body: lambda function body.

Practice Case

1. Sorting Case

Use lambda expression to sort the word list by string length:

#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;
}
Copy after login

Output:

Hello
Lambda
World
Expression
Copy after login

2. Filter case

Filter out the list of numbers that are divisible by 3:

#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;
}
Copy after login

Output:

3
6
9
Copy after login

The above is the detailed content of How are C++ Lambda expressions used in functional programming?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
c++
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!