C ++ 11のラムダ式とは何ですか?
C ++ STLには、std::for_eachのような便利なジェネリック関数が含まれています。残念ながら、特に適用したいファンクターが特定の機能に固有である場合は、使用するのが非常に面倒になる可能性があります。したがって、作成するこの関数は、その1つの場所で使用されている名前空間に含まれます。これに対する解決策は、無名関数を使用することです。
C++ではC++11にラムダ式が導入され、無名関数を作成できるようになりました。
#include<iostream> #include<vector> #include <algorithm> // for_each using namespace std; int main() { vector<int> myvector; myvector.push_back(1); myvector.push_back(2); myvector.push_back(3); for_each(myvector.begin(), myvector.end(), [](int x) { cout << x*x << endl; }); }
1 4 9
(int x)は、ラムダ式が呼び出される引数を定義するために使用されます。 []は、ローカルスコープからラムダの内部スコープに変数を渡すために使用されます。これは変数のキャプチャと呼ばれます。これらの式は、単純な場合、それらの型を自動的に推測できます。次の構文を使用して、型情報を明示的に提供することもできます-
[](int x) -> double { return x/2.0; }
C ++ラムダを詳細に調べるには、このStackOverflowスレッドにアクセスしてください-https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11
-
C#での列挙とは何ですか?
列挙型は、年、製品、月、季節などの名前付き定数のセットを格納する列挙型です。 列挙型定数のデフォルト値は0から始まり、増分します。定数のセットが固定されており、簡単にトラバースできます。 例を見てみましょう。 このように列挙型を設定しました- public enum Vehicle { Car, Bus, Truck } 以下は完全な例です- 例 using System; public class Demo { public enum Vehicle { Car, Bus, Truck } public static void
-
Pythonのラムダバインディングとは何ですか?
プログラムまたは関数ステートメントが実行されると、仮パラメーターの現在の値が(スタックに)保存され、ステートメントのスコープ内で、呼び出しで行われた実際の引数の値にバインドされます。ステートメントが終了すると、これらの仮引数の元の値が復元されます。このプロトコルは完全に再帰的です。ステートメントの本文内で、正式なパラメーターが新しい値に再度バインドされるようにする何かが行われた場合、ラムダバインドスキームは、これがすべて整然と行われることを保証します。 xのバインディングは1つだけです。x=5を実行すると、既存のバインディングの値が変更されるだけです。そのため、デフォルトのパラメーターは、ラ