C++中max_element和min_element
2015-08-04 23:32
387 查看
函数原型:
#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);
}
#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);
}
相关文章推荐
- C++/CLI——读书笔记《Visual C++/CLI从入门到精通》 第Ⅰ部分
- C/C++经典算法精华整理(1)-求一个数的二进制类型中1(或0)的个数
- c++第一季测试题
- C/C++语法知识精华整理(1)-左值与右值、变量与常量、 define与const、Printf特点、补码与阶码、位运算等
- C语言:从表尾到到表头逆向创建链表,反转链表
- C++一行字符串处理
- c++ 迭代器与下标访问效率问题
- c++ 计算程序运行时间
- 深入理解C++中的初始化
- C语言实现链队列代码
- 10、C语言和设计模式(迭代器模式)
- C语言的基本类型
- 9、C语言和设计模式(抽象工厂模式)
- 8、C语言和设计模式(责任链模式)
- 黑马程序员 c语言 条件判断
- C语言函数的调用
- C语言:链表的创建、增、删、查
- 7、C语言和设计模式(工厂模式)
- 《高质量程序设计指南C/C++语言》 林锐 韩永泉编著 总结3
- 什么是c++中的多态