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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值