0
点赞
收藏
分享

微信扫一扫

C++中关于find和find_if的理解

Separes 2022-03-10 阅读 46
c++

find提供了一个对容器的查找,而find_if更倾向于提供了对对象的查找。使用它们时需要包含头文件#include<algorithm>

//find提供原始容器的查找
    std::list<int>listFind;
    for (int i = 0; i < 3;i++)
    {
        listFind.push_back(i);
    }
    std::list<int>::iterator ite = find(listFind.begin(), listFind.end(), 2);//find 查找listFind中为2的数。
    if (ite!=listFind.end())
    {
        //找到了
    }

else

{

//没有找到

}

find_if假如我们要比较的对象是个结构体,怎样通过类似的find找到我们要找到的值呢?

typedef struct MyStruct //定义一个Mystruct的结构体
{
    int a;

    int b;
}

vector<testStruct> MyStruct;
auto itrFind = find_if(Mystruct.begin(), Mystruct.end(), [](Mystruct)
{
     return Mystruct.a > 2 ;
});
 
if(itrFind != testStructVector.end())

{

//找到了

}
    
else

{

//没有找到

}
   

举报

相关推荐

0 条评论