Вот рабочая программа, показывающая пример того, что, я думаю, вы ищете:
#include <vector>
#include <iostream>
#include <functional>
#include <algorithm>
template <typename Type, typename Compare = std::less<Type>>
Type findmax(std::vector<Type>& v, Compare comp = Compare())
{
return *std::max_element(v.begin(), v.end(), comp);
}
int main()
{
int a[] = {1, 11, 232, 2, 324, 21};
std::vector<int> v(a, a+6);
std::cout << findmax(v) << std::endl;
}