C++ count函数

来源:互联网 发布:怎么看懂行情数据图 编辑:程序博客网 时间:2024/06/05 16:31

转自:http://blog.csdn.net/hyg0811/article/details/10602283
一.count函数
algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。
编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次。
核心代码:

cout<<count(ivec.begin() , ivec.end() , searchValue)

具体实现:

//读取一系列int数据,并将它们存储到vector对象中,  //然后使用algorithm头文件中定义的名为count的函数,  //统计某个指定的值出现了多少次  #include<iostream>  #include<vector>  #include<algorithm>  using namespace std;  int main()  {      int ival , searchValue;      vector<int> ivec;      //读入int型数据并存储到vector对象中,直至遇到文件结束符      cout<<"Enter some integers(Ctrl+Z to end): "<<endl;      while(cin >> ival)          ivec.push_back(ival);      cin.clear(); // 使输入流重新有效      //读入欲统计其出现次数的int值      cout<<"Enter an integer you want to search: "<<endl;      cin>>searchValue;      //使用count函数统计该值出现的次数并输出结果      cout<<count(ivec.begin() , ivec.end() , searchValue)          <<"  elements in the vector have value "          <<searchValue<<endl;      return 0;  }  

二.count_if函数

count_if :返回区间中满足指定条件的元素数目。
template

#include <vector>  #include <algorithm>  #include <iostream>  bool greater10(int value)  {      return value >10;  }  int main()  {      using namespace std;      vector<int> v1;      vector<int>::iterator Iter;      v1.push_back(10);      v1.push_back(20);      v1.push_back(10);      v1.push_back(40);      v1.push_back(10);      cout << "v1 : ";      for (Iter = v1.begin(); Iter != v1.end(); Iter++)         cout << *Iter << " ";      cout << endl;      vector<int>::size_type  result1 = count_if(v1.begin(), v1.end(), greater10);  //count_if算法返回使谓词函数返回条件成立的元素个数      cout << "The number of elements in v1 greater than 10 is: "           << result1 << "." << endl;      return 0;  }  

谓词(predicate):是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。
总结:
count : 在序列中统计某个值出现的次数

count_if : 在序列中统计与某谓词匹配的次数

原创粉丝点击