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; } 這是對的嗎? –