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式を使用します。