简介
在做项目或刷题的过程中,经常需要返回数组的最大值和最小值。
若自己写会有一些麻烦,因此可以用C++ STL库 *max_element() 和 *min_element() 函数来返回数组的最大值和最小值。
注:
需引入头文件:
#include<algorithm>
max_element()函数
函数官方定义
template <class ForwardIterator>
ForwardIterator max_element ( ForwardIterator first, ForwardIterator last )
{
if (first==last) return last;
ForwardIterator largest = first;
while (++first!=last)
if (*largest<*first) // or: if (comp(*largest,*first)) for version (2)
largest=first;
return largest;
}
举例说明
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
vector<int>vec(array, array + 10);
cout << *max_element(array, array + 10) << endl;
cout << *max_element(vec.begin(), vec.end()) << endl; //输出结果均为:87
system("pause");
return 0;
}
min_element()函数
函数官方定义
template <class ForwardIterator>
ForwardIterator min_element ( ForwardIterator first, ForwardIterator last )
{
if (first==last) return last;
ForwardIterator smallest = first;
while (++first!=last)
if (*first<*smallest) // or: if (comp(*first,*smallest)) for version (2)
smallest=first;
return smallest;
}
举例说明
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
vector<int>vec(array, array + 10);
cout << *min_element(array, array + 10) << endl;
cout << *min_element(vec.begin(), vec.end()) << endl; //输出结果均为:9
system("pause");
return 0;
}
参考资料
http://www.cplusplus.com/reference/algorithm/min_element/
http://www.cplusplus.com/reference/algorithm/max_element/