如何求数组中的最大值或者最小值

在c++中经常会遇到求一个数组中的最大值或者最小值,那么如何初始化初始变量min和max呢?
我经常的做法是,结合实际的场景,设置一个“自以为”很大的数字或者很小的数字来初始化。或者是指定为变量类型所能表示的最大值最小值。对于后一种,c++标准库中已经提供了标准方法。

#include
using namespace std;
void main()
{
    cout << numeric_limits::max()<< endl;
    /*注意:对于min,在浮点类型中,它返回的是一个最接近0的数字。*/
    cout << numeric_limits::min()<< endl;
    /*返回的是一个“特殊的”正无穷大的数*/
    cout << numeric_limits::infinity() << endl;
    getchar();
}
#include 
#include 
int main()
{
    double max = std::numeric_limits::max();
    double inf = std::numeric_limits::infinity();
    //会跳进if语句
    if(inf > max)
        std::cout << inf << " is greater than " << max << '\n';
}
infinity的返回值

其实也可以直接使用标准库中提供的max_element和min_element函数。

    vector a{ 0,9,3,4 };
    auto it = min_element(a.begin(), a.end());
    cout << *it;

你可能感兴趣的:(如何求数组中的最大值或者最小值)