头文件中count()
和count_if()
以及max_element
和min_element()
具体用法
先看代码:
#include <algorithm>
#include <iostream>
bool greater10(int value)
{
return value >50;
}
int main()
{
using namespace std;
int Array[20]={10,21,32,56,89,75,154,45,8,48,4,4,65,4,7,5,17,18,19,20};
int CountOfTarget4=count(Array,Array+20, 4);
int CountOfGreater50 = count_if(Array,Array+20, greater10); //count_if算法返回使谓词函数返回条件成立的元素个数
int *Max_Value= max_element(Array,Array+20); //max_element()返回区间内最大值元素的迭代器
int *Min_Value= min_element(Array,Array+20); //min_element()返回区间内最小值元素的迭代器(不知道迭代器就把迭代器当作指针吧)
cout<<"CountOfTarget=="<<CountOfTarget4<<endl;
cout<<"CountOfGreater50=="<<CountOfGreater50<<endl;
cout<<"*Max_Value=="<<*Max_Value<<endl;
cout<<"*Min_Value=="<<*Min_Value<<endl;
return 0;
}
输出如下:
CountOfTarget==3
CountOfGreater50==5
*Max_Value==154
*Min_Value==1
count()
函数接受三个参数,分别是区间开始位置和结束位置、以及查找的目标值,可以参考代码示例,不仅仅是数组哟,string
和vector
也可以哟;count_if()
函数也同样接受三个参数,前两个是区间开始和结束的位置,与count()
不同的是,count_if()
的第三个参数是一个谓词,(谓词(predicate):是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。 )max_element()
函数接受两个参数,分别是区间开始和结束的位置。min_element()
函数也就同上了。
说明:在大多数函数需要接受两个参数表示区间开始个结束位置时,区间实际上是[begin,end)
的,左闭右开哟,分不清开区间和闭区间的小伙伴记住是等于begin,但是不等于end就好了吖;
如有错误欢迎指正!