C++での無名関数の使い方は?

C++では、ラムダ式を使用して匿名関数を作成することができます。ラムダ式は関数オブジェクトが必要な場所で使用でき、例えば、関数の引数として、変数に割り当てたり、直接呼び出したりすることができます。

基本的なlambda式の構文は以下の通りです。

捕捉リスト-> リターンタイプ {
機能本体
}

捕捉リストはローカル変数を捕捉するために使用され、パラメータリストは関数のパラメータを定義するために使用され、戻り値の型は関数の戻り値の型を定義するために使用され、関数本体は関数のロジックを定義するために使用されます。

ラムダ式を使用した例を以下に示します。

#include <iostream>
#include <vector>
#include <algorithm>

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

   // 使用匿名函数作为sort函数的比较函数
   std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
      return a > b;
   });

   // 使用匿名函数打印排序后的结果
   std::for_each(numbers.begin(), numbers.end(), [](int num) {
      std::cout << num << " ";
   });

   return 0;
}

上記のコードで、私たちはstd::sort()関数の比較関数としてlambda式を使用し、numbersを降順にソートします。その後、ソートした結果を出力するためにstd::for_each()関数の操作関数としてlambda式を使用します。

bannerAds