1
我想从一个向量的每个元素中减去一个数,如果写在传统的C++,它应该是这样的:减去矢量<int>的变量,使用的for_each和lambda功能
vector<int> A; // a vector of size N
int value; // a value to subtracted
for (int i = 0; i < N; i++)
A[i] -= value;
但是现在,我想用for_each
来使代码更清洁。例如,代码应该是这样的(以下是不正确的):
for_each(A.begin(), A.end(), [](int& x, int v) { x -= v; });
但拉姆达功能无法使用可变value
。
如何处理?
不被使用的载体在匿名lambda函数中。没有理由要制作副本。 – Jts
你是对的!我不知道我为什么这么想。 –
如果我想使用多个变量,说x = x + value1 - value2,[value1,value2](auto&x){x = x + value1 - value2; } 这是对的吗? –