//用模板定义一元谓词、
#include <iostream>
#include <vector>
#include <algorithm> using namespace std;
//用模板定义一元谓词、 template<typename numberType>
struct IsMultiple
{
numberType m_Divisor;
IsMultiple(const numberType& divisor)
{
m_Divisor = divisor;
}
//bool operator()(const mumberType& element) const
//严重性 代码 说明 项目 文件 行 禁止显示状态
//错误 C4430 缺少类型说明符 - 假定为 int。注意 : C++ 不支持默认 int cc23b_demo d : \users\tt2018\documents\visual studio 2015\projects\cc23b_demo\cc23b_demo\cc23b_demo.cpp 16
//numberType写成了mumberType bool operator()(const numberType& element) const//一元谓词
{
return((element%m_Divisor) == );
} };
int main()
{
vector<int> vecIntegers;
for (int i = ; i < ; ++i)
vecIntegers.push_back(i);
//算法-写法1
//IsMultiple<int> a(4);
//vector<int>::iterator iElement;//迭代器是个指针
//iElement=find_if(vecIntegers.begin(), vecIntegers.end(), a); //写法2,省一个变量 vector<int>::iterator iElement;//迭代器是个指针
iElement = find_if(vecIntegers.begin(), vecIntegers.end(), IsMultiple<int> ());//IsMultiple<int> (4),省一个变量
//
if (iElement != vecIntegers.end())
{
cout << "第一个4的整数倍的数是: " << *iElement << endl;////迭代器是个指针
} //a(4);
cout << "hello1" << endl;
getchar();
return ;
}