简单用法如下:
int i=max_element(a,a+n)-a;
c++标准库自带的求一个序列中最大元素的函数,并返回一个迭代器
返回第一个最大值所在数组中的位置
printf("%d\n",*max_element(a,a+n));可以打印出最大值
同时 min_element的用法同上,但是都有一个共同点,就是找到的位置都是第一个最大(小)的元素,即存在多个相同大小的元素的时候找到的是第一个
在头文件 #include <algorithm> 中,返回的是迭代器,所以输出值的话要在前面加 *
第三个参数cmp可写可不写, max_element() 和 min_element() 默认是从小到大排列,然后 max_element() 输出最后一个值, min_element() 输出第一个值,但是如果自定义的 cmp 函数写的是从大到小排列,那么会导致 max_element() 和min_element() 的两个结果是对调的
可以用于 vector<int> 或者 vector<string> 等,也可以用于 int arr[4] 或者string arr[4] ,也可以用于结构体vector或者结构体数组
#include<bits/stdc++.h>
using namespace std;
int a[3]={1,4,3};
bool cmp(int x,int y){
return x>y;
}
int main(){
cout<<*max_element(a,a+3,cmp);
return 0;
}
输出的结果为1