#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <set>
using namespace std;
// 一元谓词
//bool isEven(int elem)
//{
// cout << elem % 2 == 0;
//}
int main()
{
vector<int> ivec;
ivec.push_back(4);
for (int i = 0; i <= 9; ++i)
{
ivec.push_back(i);
}
ivec.push_back(4);
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
cout << *iter << ' ';
}
cout << endl;
int num;
num = count(ivec.begin(), ivec.end(), 4); // count 计算在ivec.begin()和 ivec.end()区间有几个4,
cout << "有" << num << "个4 ." << endl;
//num = count_if(ivec.begin(), ivec.end(), isEven); // count_if是计算ivec.begin()和ivec.end()之间在isEven执行是的数目,
// paraml % param2 modulus是取模运算,
num = count_if(ivec.begin(), ivec.end(), not1(bind2nd(modulus<int>(), 2)));
cout << "有" << num << "个偶数 ." << endl;
// 函数适配器 函数对象
// param1>param2 就是判断greater<int>大于4的数
num = count_if(ivec.begin(), ivec.end(), bind2nd(greater<int>(), 4));
cout << "有" << num << "个数大于4" << endl;
multiset<int> mset;
for (int i = 0; i <= 9; ++i)
mset.insert(mset.end(),i);
mset.insert(2);
mset.insert(7);
for (multiset<int>::iterator iter = mset.begin(); iter != mset.end(); ++iter)
cout << *iter << ' ';
cout << endl;
num = count(mset.begin(), mset.end(), 7);
cout << "multiset里有" << num << "个7" << endl;
num = mset.count(7); // 高重查找,
cout << "multiset里有" << num << "个7" << endl;
return 0;
}
元素计算
最新推荐文章于 2016-03-14 21:03:40 发布