C++ min/max_element ()函数用法
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; } |
这里给出了max_element()函数的一种使用方法
1
|
cout<<*max_element(a,a+7); |
我们已经知道返回的是地址,减去数组名是获得下标
同理我们可以直接通过地址获取值
C++中max()与max_element()的区别
max与max_element简析
-
max(a,b)
,返回a,b两者之间的较大值 -
max_element(r, r+6)
,返回数组r中[0, 6)之间的最大值的迭代器,
使用max_element返回的值减去数组头地址即为该最大值在数组的序号
min 和 min_element的区别同上,看到下面的例子你就会明白了
程序代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <iostream> #include <algorithm> using namespace std; int main( void ) { int a[6] = {5, 3, 2, 6, 1, 4}; int b = a[0]; int c = a[1]; cout<<max(b, c)<< " " <<min(b,c)<<endl; //输出为5 3 cout<<max_element(a, a+6) - a<<endl; // 输出为3 cout<<*max_element(a, a+6)<<endl; //输出为 6 cout<<min_element(a, a+6) - a<<endl; // 输出为4 cout<<*min_element(a, a+6)<<endl; //输出为1 return 0; } |
运行截图
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_44017078/article/details/111658628