同样是O(n)复杂度,但是经过不严谨 测试,使用库函数的速度远超for循环的遍历找最值
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/*
param begin : 序列起始地址(迭代器)
param end : 序列结束地址(迭代器)
return : 序列中最小元素地址(迭代器)
*/
min_element(begin, end);
/*
param begin : 序列起始地址(迭代器)
param end : 序列结束地址(迭代器)
return : 序列中最大元素地址(迭代器)
*/
max_element(begin, end);
|
注意:
接收的参数是容器的首尾地址(迭代器)(可以是一个区间)
返回的是最值元素的地址(迭代器),需要减去序列头以转换为下标
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <iostream>
#include <algorithm>
using namespace std;
#define len 7
int main()
{
int a[7] = {11, 4, 51, 41, 91, 98, 10};
int min_idx = min_element(a, a+len) - a;
int max_idx = max_element(a, a+len) - a;
cout<<min_idx<< " " <<a[min_idx]<<endl;
cout<<max_idx<< " " <<a[max_idx]<<endl;
return 0;
}
|
总结
以上所述是小编给大家介绍的C++ min/max_element 函数用法详解,希望对大家有所帮助!
原文链接:https://blog.csdn.net/weixin_44176696/article/details/104331203