一元谓词的用法

#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
//一元谓词

//仿函数 返回值类型是bool数据类型,称为谓词
//一元谓词

class GreaterFive
{
public:
    bool operator()(int val) //算法在遍历期间会遍历每一个数 
    {
        return val > 5;//告诉函数真的条件
    }
};

int main(void)
{
    vector<int> v;
    for (int i = 0; i < 10; i++)
        v.push_back(i);

    GreaterFive a;

    //该算法函数返回一个迭代器类型,所以我们用迭代器来接受返回值
    vector<int>::iterator it =  find_if(v.begin(), v.end(), a);//最后一个参数接受谓词直接放一个类对象    或者     用匿名对象GreaterFive()
    //如果没有找到符合条件的值,那么就会返回end()
    if (it == v.end())
    {
        cout << "没有找到" << endl;
    }
    else
    {
        cout << "找到的值是" << *it << endl;
    }
    //遇到第一个符合条件的值就会停下来
    return 0;
}

 

posted @ 2021-01-16 11:33  loliconsk  阅读(314)  评论(0)    收藏  举报