0%

c++:predicate

个人也是初学根本就不了解谓词是什么意思,通过下面的例子大家自己体会吧。

 

下面程序演示了count_if();

该程序创建一个包含数字1-19的矢量,然后统计能够被3整除的元素个数。

为了达到这个目的,程序首先创建了一个称为dividesby3()的一元谓词,如果谓词的参数能够被3整除,该谓词返回ture

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

bool dividesby3(int i)
{
if((i%3)==0)return true;
return false;
}

int main()
{
vector<int> v;
int i;
for(i=0;i<20;i++)v.push_back(i);
cout << "Sequence:/n";
for(i=0;i<v.size();i++)cout << v[i] <<" ";
cout << endl;
i=cout_if(v.begin(),v.end(),dividesby3);//谓词就在这里被用到了
cout << i <<" numbers are divisible by 3./n";
return 0;
}