请设计下述rangeMax()模板函数,该函数在给定的迭代器搜索范围[begin,end)里查找值最大的元素,返回指向该元素的迭代器。假设迭代器所指向的元素类型支持>操作符。 函数接口定义: T rangeMax(T begin, T end); 裁判测试程序样例: #include <iostream> #include <list> #include <vector> using namespace std; //在此处定义rangeMax模板函数 int main() { vector<int> vi {7,99,1,3,12,67,678,2,4}; list<int> li {7,99,1,3,12,67,678,2,4}; cout << "max(vi[0~5]) = " << *rangeMax(vi.cbegin(),vi.cbegin()+6) << endl; cout << "max(vi[0~]) = " << *rangeMax(vi.cbegin(),vi.cend()) << endl; cout << "max(li[0~]) = " << *rangeMax(li.cbegin(),li.cend()) << endl; return 0; }
时间: 2024-03-13 10:44:53 浏览: 93
C语言程序设计-编写自定义函数max,用来求三个数的最大值(要求:数据的输入、输出在主函数中实现)。
5星 · 资源好评率100%
下面是实现rangeMax()模板函数使用STL算法的代码:
```cpp
#include <algorithm>
template<typename T>
T rangeMax(T begin, T end) {
return std::max_element(begin, end);
}
```
该函数使用STL算法`std::max_element()`,直接返回给定范围内的最大值的迭代器。
阅读全文