#if 1
QList lst;
lst.push_back(10);
lst.push_back(20);
lst.push_back(30);
auto it = std::find_if(lst.begin(), lst.end(), [ this ](int value) {
qDebug() << "---------- value : " << value;
return value == 10;
}); // 查找list中是否有元素“10”
if (it != lst.end()) { // 找到了
// do something
qDebug() << "---------1 找到了 ";
} else { // 没找到
// do something
qDebug() << "---------1 没找到 ";
}
auto it2 = std::find_if(lst.begin(), lst.end(), [ = ](int value) {
qDebug() << "---------- value2 : " << value;
return value == 40;
}); // 查找list中是否有元素“10”
if (it2 != lst.end()) { // 找到了
// do something
qDebug() << "---------2 找到了 ";
} else { // 没找到
// do something
qDebug() << "---------2 没找到 ";
}
========================
输出:
---------- value : 10
---------1 找到了
---------- value2 : 10
---------- value2 : 20
---------- value2 : 30
---------2 没找到
========================
#else
struct strData {
int age;
QString name = “123456”;
};
QList<strData> lst;
strData a;
a.age = 10;
a.name = "ww";
lst.push_back(a);
a.age = 20;
a.name = "ww2";
lst.push_back(a);
a.age = 30;
a.name = "ww3";
lst.push_back(a);
auto it = std::find_if(lst.begin(), lst.end(), [ = ](strData value) {
qDebug() << "---------- value : " << value.age << value.name;
return value.age == 30;
}); // 查找list中是否有元素“10”
if (it != lst.end()) { // 找到了
// do something
qDebug() << "---------1 找到了 : " << it->name << it->age;
} else { // 没找到
// do something
qDebug() << "---------1 没找到 ";
}
auto it2 = std::find_if(lst.begin(), lst.end(), [ = ](strData value) {
qDebug() << "---------- value : " << value.age << value.name;
return value.age == 50;
}); // 查找list中是否有元素“10”
if (it2 != lst.end()) { // 找到了
// do something
qDebug() << "---------2 找到了 : " << it2->name << it2->age;
} else { // 没找到
// do something
qDebug() << "---------2 没找到 ";
}
========================
---------- value : 10 “ww”
---------- value : 20 “ww2”
---------- value : 30 “ww3”
---------1 找到了 : “ww3” 30
---------- value : 10 “ww”
---------- value : 20 “ww2”
---------- value : 30 “ww3”
---------2 没找到
========================
#endif