algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。
编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次。
count(数组开头,数组结尾,数组要找的对象);
核心代码:cout<<count(ivec.begin() , ivec.end() , searchValue);
样例:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ int a[1000],n; scanf("%d",&n); for(int i = 0;i < n; i++) { scanf("%d",a + i); } int m; scanf("%d",&m); printf("%d\n",count(a,a+n,m)); return 0;}
有了这个函数,就不用循环一个一个搜索了!!!
这里还有一个更强的函数:count_if
count_if(数组开头,数组结尾,要满足的条件【1】)
【1】:满足条件可以用自定义函数,定义函数,返回判断值。
样例:
#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; }最后,阿姆镇楼!!!
转载于:https://www.cnblogs.com/DukeLv/p/7911524.html
