std::find_if

#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 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

你可能感兴趣的:(工具类使用,C++)