查找对象属性是否在对象C的向量中

 2021-04-26 

Find if an object attribute is in the Vector of objects C++

本问题已经有最佳答案,请猛点这里访问。

我试图查找对象的属性是否在矢量中。
例如,如果我有一个Car对象的向量,而Car对象具有许可证,方向和时间的属性。我想确定方向'N'是否在Car对象的向量中。如果属性在Cars向量中,则返回true或false。

这是我到目前为止拥有的功能,但是我想使用stl find()方法搜索属性:

1
2
3
4
5
6
7
8
9
bool isIn(std::vector<Car *> c, std::string check){
for (auto i = 0; i < c.size(); i++)
{
    if (c[i]->dir == check)
    {
        return true;
    }
}
return false;

} ??

传入的参数是Cars的向量和方向。


在您的情况下,std :: find_if可能是解决方案

1
auto it = find_if(c.begin(), c.end(), [&check](const Car& obj) {return obj.getDir() == check;})