C++ 関数におけるラムダ式の使用シナリオは何ですか?

王林
リリース: 2024-04-19 14:45:02
オリジナル
916 人が閲覧しました

ラムダ式は、コールバック関数またはパラメーター化された関数としてコードを簡素化するために使用できる匿名関数であり、コードの簡素化、冗長性の削減、柔軟性の向上などの利点があります。

C++ 函数的 lambda 표达式的使用场景是什么?

C 関数でのラムダ式の使用シナリオ

ラムダ式は、関数本体内で定義できる匿名関数であり、使用。通常の関数とは異なり、ラムダ式には名前がなく、それが定義されているスコープ内でのみ使用できます。

使用シナリオ:

  1. コードの簡素化: ラムダ式を使用して、単純な関数でコードを簡素化します。たとえば、次のコードはラムダ式を使用してリスト内の各要素を 1 ずつ増分します。
#include <iostream>
#include <vector>

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

  // 使用 lambda 表达式增加每个元素
  std::for_each(numbers.begin(), numbers.end(), [](int& n) { n++; });

  // 打印增加后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
ログイン後にコピー
  1. コールバック関数として: ラムダ式は次のように渡すことができます。他の関数へのコールバック関数。たとえば、次のコードはラムダ式をコールバック関数として使用して、リスト内の要素を並べ替えます。
#include <iostream>
#include <vector>
#include <algorithm>

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

  // 使用 lambda 表达式对列表排序
  std::sort(numbers.begin(), numbers.end(), [](int a, int b) { return a < b; });

  // 打印排序后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
ログイン後にコピー
  1. 関数のパラメータ化: ラムダ式は次の目的で使用できます。関数をパラメータ化します。たとえば、次のコードは、ラムダ式を受け取り、反復演算を実行する関数を定義します。
#include <iostream>
#include <vector>

void for_each(std::vector<int>& numbers, std::function<void(int&)> operation) {
  for (int& num : numbers) {
    operation(num);
  }
}

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

  // 使用 lambda 表达式参数化 for_each 函数
  for_each(numbers, [](int& n) { n *= n; });

  // 打印平方后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
ログイン後にコピー

利点:

  • 簡略化されたコード
  • 冗長性の削減
  • 柔軟性の向上

以上がC++ 関数におけるラムダ式の使用シナリオは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート