我有这个简单的类:
class SomeClass
{
QString key;
QString someData;
int otherField;
public:
QString getKey() { return key };
};
我有这个列表:
QList<SomeClass*> myList;
我想检查 myList 是否包含 key = "mykey1"的对象;
for(int i = 0; i < myList.size(); i++)
{
if(myList.at(i)->getKey() == "mykey1")
{
//do something with object, that has index = i
}
}
是否有任何标准函数可以循环并返回此对象或索引或指针? , 所以我不需要使用循环
最佳答案
您可以使用 std::find
算法。
您需要为 std::find
重载 operator==
class SomeClass
{
//Your class members...
public:
bool operator==(const SomeClass& lhs, const SomeClass& rhs)
{
return lhs.key == rhs.key;
}
}
然后找到您的 key 使用:
if (std::find(myList.begin(), myList.end(), "mykey1") != myList.end())
{
// find your key
}
关于c++ - c++98 如何通过特定字段在 QList 中查找对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45658250/