#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <iterator>
#include <list>
using namespace std;
// 判断式,是一种特殊的辅助函数
// predicate 可能有以或两个操作数
bool isPrime(int number)
{
number=abs(number);
// 0 and 1 are not prime number
// 素数
if (number==0 || number==1)
{
return false;
}
// find divisor that divides without a remainder
int divisor;
for (divisor = number/2; number%divisor !=0; --divisor)
{
;
}
return divisor==1;
}
int main()
{
list<int> coll;
for (int i = 24; i <= 30; ++i)
{
coll.push_back(i);
}
// search for prime number
auto pos=find_if(coll.cbegin(),coll.cend(),isPrime);
if (pos!=coll.end())
{
cout<<*pos<<"is first prime number found"<<endl;
}
// 算法find_if 在给定区间内寻找使“传入之单参判断式”运算结果正确的第一个元素
// 如果没有任何元素能够匹配到这个条件 find_if算法就返回区间终点
system("pause");
return 0;
}