面试题答案
一键面试#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 8, 12, 15, 20};
auto it = std::find_if(vec.begin(), vec.end(), [](int num) { return num > 10; });
if (it != vec.end()) {
std::cout << "第一个大于10的元素是: " << *it << std::endl;
} else {
std::cout << "没有找到大于10的元素" << std::endl;
}
return 0;
}
在这种场景下使用Lambda表达式比普通函数更合适的原因如下:
- 简洁性:Lambda表达式可以直接在使用的地方定义,无需在代码其他位置专门定义一个普通函数,使代码更加紧凑,阅读起来更直观。
- 作用域灵活性:Lambda表达式可以直接捕获其所在作用域中的变量,而普通函数要实现同样功能则需要通过参数传递等方式来获取外部变量,相对繁琐。在这个例子中,如果后续有对外部变量的依赖,Lambda表达式处理起来会更方便。