STL算法------元素计数

来源:互联网 发布:大数据可视化方法 编辑:程序博客网 时间:2024/06/05 23:25

1.count

2.count_if

3.关联容器的等效成员函数

     (1)  set.count

    (2)    multiset.count

    (3)  map.count

    (4) multimap.count


#include <iostream>#include <algorithm>#include <vector>#include <set>#include <functional>using namespace std;//谓词  一个参数   所以叫一元谓词bool isEven( int elem ){return elem%2 == 0;}int main(){vector<int> ivec;for( int i=0; i<9; i++ ){ivec.push_back(i);}for( vector<int>::iterator itr = ivec.begin(); itr!=ivec.end(); ++itr ){cout<<*itr<<' ';}cout<<endl;ivec.push_back(4);int num = count(ivec.begin(), ivec.end(), 4);cout<<"has "<<num<<" 4"<<endl;num = count_if(ivec.begin(), ivec.end(), isEven);cout<<"has "<<num<<"偶数"<<endl;num = count_if(ivec.begin(), ivec.end(), not1(bind2nd(modulus<int>(),2)));cout<<"has "<<num<<"偶数"<<endl;//                                      函数适配器  函数对象//                                               param1 > param2//                                               param1 > 4//                                      将4绑定在第二个参数num = count_if(ivec.begin(), ivec.end(), bind2nd(greater<int>(),4));cout<<"has "<<num<<"个数  > 4"<<endl;multiset<int> mset;for(int i=0; i<9; i++ ){mset.insert(mset.end(), i);}for(multiset<int>::const_iterator itr = mset.begin(); itr != mset.end(); ++itr){cout<<*itr<<' ';}mset.insert(7);num = count(mset.begin(), mset.end(), 7);cout<<"multiset has "<<num<<" num 7"<<endl;return 0;}


0 0