我创建了一个对象向量,对象有多个私有变量:
Int x, y, id
现在我希望迭代这个向量,并在我的x和y值之前找到对象。 x&的最小值。 y更大。
我已经看过矢量"发现"命令。这可能会在它的最后一个字段中接受多个参数......比如
(Vector.begin, vector.end, (x > object.x && y > object.y)
我一直在搞乱它并谷歌搜索找到解决方案,但我还没有在find命令的最后一个字段中看到任何涉及多个参数的例子?
答案 0 :(得分:2)
您可以将std::find_if
与lambda
Object foo; // object you want to compare against
std::vector<Object> objs; // objects you want to look through
auto itFound = std::find_if(begin(objs),
end(objs),
[&foo](Object const& obj)
{
return obj.x > foo.x && obj.y > foo.y;
});
答案 1 :(得分:1)
您可以使用仿函数或lambda来调用find_if
来测试您喜欢的所有条件。