私はダミーリスト{1,1,1,1,1,1}からフィボナッチ数のリストを返す関数fibonacciを持っています。ここに私のコードです。代わりに計算するために、ラムダ式[](constのリストA、int型B)を通過するラムダの代わりに関数を使用するようにこのコードを変更するにはどうすればよいですか?
list<int> immutableFibonacci(int position)
{
list<int> oldList(position, int(1));
list<int> newList = accumulate(oldList.begin(), oldList.end(), list<int>{},
[](const list<int> a, int b)
{
list<int> d = a;
if (a.size()<2)
{
d.push_back(1);
}
else
{
auto start = d.rbegin();
auto first = *start;
start++;
auto second = *start;
d.push_back(first + second);
}
return d;
});
return newList;
}
、私は、関数の名前を渡したいです。これをやり遂げるにはどうすればいいですか?基本的に関数immutableFibonacciの中の関数ですが、これを行う上で問題があります。
関数を作成してそれを積み重ねようとしましたか? – NathanOliver
私は[](constリスト a、int b)で何が起こっているかわからないので、私はそれを始める方法がわかりません –
@coding_xeno:私の答えを見てください。前回の回答の質問でラムダ定義を残念に思っています。私は時々少し怠惰になる。それはラムダの欠点です。私はあまりにも好きです! :-D –