【发布时间】:2021-04-11 05:20:09
【问题描述】:
我正在尝试使用乘法 lambda 来累积向量中的数字。
我的错误是什么?结果我得到 1,而不是 24 (= 123*4)。我的做法如下:
std::function<float(float a, int x)> func;
std::vector<int> m{ 1, 2, 3, 4 }; // <-- Multiply: 1*2*3*4 = 24
float accumulation = 1.0f;
func = [&accumulation, &m](float a, int i) {
accumulation = a * *m.begin()++;
return accumulation;
};
accumulation = accumulate(m.cbegin(), m.cend(), accumulation, func);
【问题讨论】: