我正在尝试使用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(), ???);
我不确定应该放什么在???
中。
我看过的所有示例都使用硬编码值来检查ID的lambda表达式。我想要的是只有当toFind
的ID与向量中某个项目的ID匹配时,才返回迭代器/成功。
我看到的所有示例都没有向我展示如何传递这两个参数。
编辑
附加信息:我必须在两种不同的情况下使用它:一种是结构体的==运算符,另一种是结构体没有==运算符-我不能创建一个因为用于此场景的匹配标准并不像等价运算符那样严格。
(感谢所有回复我的人;在一种情况下我能够使用find(),并且在另一种情况下在您的帮助下能够使用find_if())