在以下STL算法的示例代码中std::all_of
,
'[](int i){返回i%2 == 0; }' 意思?
int main() {
std::vector<int> v{10, 2, 4, 6};
if (std::all_of(v.begin(), v.end(), [](int i){ return i % 2 == 0; })) {
std::cout << "All numbers are even\n";
}
else{
std::cout << "All numbers are not even\n";
}
}
这是一个lambda函数,用于检查是否i
为偶数。如果i
是偶数,它将返回true ,否则返回false。
逻辑与此等效:
#include <algorithm>
#include <iostream>
bool isEven(int i) {
return i % 2 == 0;
}
int main() {
std::vector<int> v{10, 2, 4, 6};
if (std::all_of(v.begin(), v.end(), isEven)) {
std::cout << "All numbers are even\n";
}
else{
std::cout << "All numbers are not even\n";
}
}
输出:
所有数字都是偶数
注:这是拉姆达方法是一个免费的功能,它并没有捕捉到任何东西。
PS:该lambda方法与STL无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句