相关疑难解决方法(0)

如何将lambda用于std :: find_if

我试图使用std :: find_if来查找符合某些条件的对象.考虑以下:

struct MyStruct         
{
    MyStruct(const int & id) : m_id(id) {}                      
    int m_id;
};
...         
std::vector<MyStruct> myVector; //... assume it contains things

MyStruct toFind(1);
std::vector<MyStruct>::iterator i = std::find_if(myVector.begin(), myVector.end(), ???);
Run Code Online (Sandbox Code Playgroud)

我不知道该放什么 ???

我见过的所有示例都有一个lambda,它使用硬编码值来检查ID.我想要的是只有当id toFind与向量中某个项的id 匹配时才返回迭代器/成功.

我看到的所有示例都没有告诉我如何传递这两个参数

编辑

附加信息我有两种不同的场景我必须使用它,其中有一个结构的==运算符和另一个结构没有运算符== - 我不能创建一个因为标准找到这种情况的匹配并不像对等运算符那样严格.

(感谢所有回复的人;我能够在一个案例中使用find()并且在你的帮助下能够使用find_if()进行另一个案例)

c++ lambda stl

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

lambda ×1

stl ×1