美文网首页
4.find_if查找

4.find_if查找

作者: lxr_ | 来源:发表于2021-05-05 18:17 被阅读0次
#include<iostream>
using namespace std;

#include<vector>
#include<algorithm>

//find_if(iterator begin, iterator end, _Pred);_Pred为函数或者谓词(返回bool类型的仿函数,根据仿函数的参数多少分为一元谓词和二元谓词)
//按值查找元素,找到返回指定位置的迭代器,找不到返回结束迭代器位置

//内置数据类型查找
class MyFind5
{
public:
    bool operator()(int val)//一元谓词
    {
        return val > 5;
        
    }
};
void test0401()
{
    vector<int> v;
    for (int i = 0; i < 10; i++)
    {
        v.push_back(i);
    }

    vector<int>::iterator it=find_if(v.begin(), v.end(), MyFind5());//查找val>5的,即用仿函数指定查找条件
    if (it == v.end())
    {
        cout << "未找到" << endl;
    }
    else
    {
        cout << "找到了" << (*it) << endl;
    }

}
//自定义数据类型查找
class Person
{
public:
    Person(string name,int age)
    {
        this->m_Name = name;
        this->m_Age = age;
    }
    string m_Name;
    int m_Age;
};
class FindPerson20
{
public:
    bool operator()(Person p)//一元谓词
    {
        return p.m_Age > 20;
        
    }
};
void test0402()
{
    vector<Person> v;

    Person p1("xan", 11);
    Person p2("si", 22);
    Person p3("fan", 33);

    v.push_back(p1);
    v.push_back(p2);
    v.push_back(p3);

    vector<Person>::iterator it=find_if(v.begin(), v.end(), FindPerson20());//利用仿函数指定查找年龄大于20岁的人
    if (it == v.end())
    {
        cout << "未找到" << endl;
    }
    else
    {
        cout << "找到了" << it->m_Name<<endl;
    }
}
int main()
{
    test0401();
    test0402();

    system("pause");
    return 0;
}

相关文章

  • 4.find_if查找

  • 《数据结构与算法》知识点(四)

    第七章 查找 顺序查找、折半查找、索引查找、分块查找是静态查找,动态查找有二叉排序树查找,最优二叉树查找,键树查找...

  • 查找

    静态查找顺序查找 折半查找 散列查找 动态查找二叉排序树 散列查找 ASL(平均查找长度) - 衡量查找算法效率的...

  • PHP查找算法

    静态查找 顺序查找 折半查找 递归折半查找

  • 6.1 查找算法_基础

    1. 查找基本概念 查找:只有两种情况,查找成功,查找失败 查找表:查找的数据集合称为查找表 静态查找表 / 动态...

  • 据结构与算法学习-查找与二叉排序树

    查找表操作方式分为静态查找和动态查找。静态查找表(Static Search Table): 只作查找操作的查找表...

  • iOS-字符串查找

    字符串查找通常有四种方式,暴力查找,KMP查找,BoyerMoore查找以及RabinKarp算法查找,查找最简单...

  • linux 查找目录或文件

    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) ...

  • Linux查找文件、文件夹

    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) ...

  • linux常用命令

    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) ...

网友评论

      本文标题:4.find_if查找

      本文链接:https://www.haomeiwen.com/subject/rdbirltx.html