count和count_if函数
最近在研究STL,遇到许多STL标准库函数,也算是C++的一部分吧!省时、高效!
头文件:#include <algorithm>
用法:统计符合条件的数量
count原型:count(address,address+n,匹配条件)
count_if原型:count_if(address,address+n,cmp),cmp自定义匹配方法
1.count函数的用法示例:
[cpp]
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,total,*p;
cin>>n; //有n个待查找数
p=new int[n];
for(int i=0;i<n;i++)
cin>>p[i];
total=count(p,p+n,1); //查找为值为1的数量
delete[] p;
cout<<total<<endl;
return 0;
}
[/cpp]
输入及输出:
5
1 3 2 1 1
3
2.count_if的标准用法
[cpp]
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a)
{
if(a<0)
return true;
else
return false;
}
int main()
{
int n,i,*p,total;
while(cin>>n)
{
total=i=0;//初始化
p=new int[n];
for(i=0;i<n;i++)
cin>>p[i];
total=count_if(p,p+n,cmp);
cout<<total<<endl;
delete[] p;
}
return 0;
}
[/cpp]
输入及输出:
5
-1 -2 -3 5 -4
4
3.count_if结构体中的匹配统计用法
[cpp]
//统计考及格的数量
#include <iostream>
#include <algorithm>
using namespace std;
class score
{
public:
int number;
int fen;
};
bool cmp(score a)
{
if(a.fen>60)
return true;
else
return false;
}
int main()
{
score *p;
int n,i,total;
while(cin>>n)
{
total=i=0;//初始化
p=new score[n];
for(i=0;i<n;i++)
cin>>p[i].number>>p[i].fen;
total=count_if(p,p+n,cmp);
cout<<total<<endl;
delete[] p;
}
return 0;
}
[/cpp]
输入及输出:
5
1 50
2 61
3 59
4 78
5 98
3