//普通函数
bool fun(int& a)
{
return (a - 2) == 0;
}
//函数类
struct Fun
{
bool operator()(int&a)
{
return (a - num) == 0;
}
int num;
Fun(int n) :num(n){}
};
int main()
{
vector<int>dds = { 1, 2, 3 };
//调用普通函数
vector<int>::iterator it1 = find_if(dds.begin(), dds.end(), fun);
//调用函数对象
vector<int>::iterator it2 = find_if(dds.begin(), dds.end(), Fun(2));
//使用lambda表达式生成函数对象
int n = 2;
vector<int>::iterator it3 = find_if(dds.begin(), dds.end(), [n](int a){return (a - n) == 0; });
return 0;
}
c++函数作为参数的3种传参方法
最新推荐文章于 2025-03-28 17:09:22 发布
本文探讨了在C++中如何使用find_if算法结合普通函数、函数对象及lambda表达式进行元素查找。通过具体示例展示了不同方法的使用,并比较了它们之间的区别。
785

被折叠的 条评论
为什么被折叠?



