函数原型:
#include <algorithm>
iterator max_element( iterator start, iterator end );
iterator max_element( iterator start, iterator end, BinPred p );
用法:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n[]={1,4,22,3,8,5};
int len=sizeof(n)/sizeof(int);
cout<<*max_element(n,n+len)<<endl;
cout<<*min_element(n,n+len)<<endl;
return 0;
}
注意:数组中参数和返回值是对应的地址,如果在容器中,则是迭代器。例如:
string longestPalindrome(string s) {
if (s.size() < 2) return s;
std::map<int, int> mpal;//<len,start>
for (int i = 0; i<s.size();)
{
int start = i;
while (s[start] == s[i + 1]) ++i;
int finish = i;
while (start >= 0 && finish < s.size() && s[start] == s[finish])
{
--start;
++finish;
}
if (finish - start >= 3) mpal.insert(std::make_pair(finish - start - 1, start + 1));
++i;
}
auto m = std::max_element(mpal.begin(), mpal.end()); //m是迭代器
return s.substr((*m).second, (*m).first);
}