I再帰的なラムダの実装に興味を持って、そしてフィボナッチ計算のために、このコードが見つかりました:再帰的なラムダimplemention ++ 11
std::function<int(int)> lfib = [&lfib](int n) {return n < 2 ? 1 : lfib(n-1) + lfib(n-2);};
そして、私は疑問を持っているが:/ std::function
は、多型の機能であるので、lfib
が作成をし、ラムダをスタックではなくヒープメモリに保存します。したがって、は、プログラムのの最適化の可能性を失うことがあります。正しいかどうか?
はい。いいえ。 –
O(2^N)アルゴリズムの複雑さを持つプログラムに対して、関数呼び出しの仕組みは重要ではありません。 – Cubbi
私はfibbonachiの実装について尋ねていない、私はstdについて尋ねられました::機能は、プログラムの損失を最適化する可能性があります。 –