【发布时间】:2023-03-29 10:50:01
【问题描述】:
我有一个用 5 个数字填充的整数向量,我很好奇 [&idx] 到底做了什么:
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;
【问题讨论】:
-
另外,你的第二个代码块有错误的语法。即使没有捕获列表,Lambda 仍然需要
[]。