STL中区间最值max_element和min_element的用法

原文链接

一、函数原型

max_element

template< class ForwardIt >
ForwardIt max_element(ForwardIt first, ForwardIt last );
template< class ForwardIt, class Compare >
ForwardIt max_element(ForwardIt first, ForwardIt last, Compare comp );

min_element

template< class ForwardIt >
ForwardIt min_element( ForwardIt first, ForwardIt last );
template< class ForwardIt, class Compare >
ForwardIt min_element( ForwardIt first, ForwardIt last, Compare comp );

参数
first,end——区间范围
comp——自定义比较函数
顾名思义,max_element就是求区间最大值,而min_element就是求区间最小值。当然也可以自定义比较函数达到自己想要的“最大值”或者“最小值

二、代码演示

#include <bits//stdc++.h>
using namespace std;

int main(){
    int a[] = {1,2,3,4,5};
    int maxa = max_element(a,a+5), mina = min_element(a,a+5);
    cout << maxa << ' ' << mina << endl;
    return 0;
}

预计上面代码输出为5 1,但是最终却编译错误。Why?
因为这两个函数返回的是最大值或者最小值的迭代器,所以我们得加上一个*号得到值,最终代码如下:

#include <bits//stdc++.h>
using namespace std;

int main(){
    int a[] = {1,2,3,4,5};
    int maxa = *max_element(a,a+5), mina = *min_element(a,a+5);
    cout << maxa << ' ' << mina << endl;
    return 0;
}

/**运行结果
5 1
*/

猜你喜欢

转载自blog.csdn.net/weixin_45845039/article/details/108123096