我有一個整數的矢量充滿了5個號碼,我很好奇究竟是什麼[&idx]
做:的for_each函數C++ 11
int idx = 0;
for_each (x . begin(), x . end(), [&idx] (const int & a) { cout << idx ++ << " " << a << endl; });`
爲什麼它不喜歡這個工作? :
int idx = 0;
for_each (x . begin(), x . end(), (const int & a, int & idx) { cout << idx ++ << " " << a << endl; });
從性能的角度來看比它更好嗎? :
for (vector<int>::size_type i = 0; i < x . size(); i ++)
cout << x[i] << endl;
此外,你的第二個代碼塊有錯誤的語法。即使沒有捕獲列表,Lambdas仍然需要'[]'。 –