像使用cout一样使用仿函数;
int string_cout::cnt = 0;
template<class T>
auto compare(T arr[],int n)->T
{
T max_val = INT_MIN;
for (int i=0;i<n;i++)
{
max_val = max_val > arr[i] ? max_val : arr[i];
}
return max_val;
}
template<class T>
class NUM
{
public:
NUM& operator()(T arr[],int n)
{
cout << compare<T>(arr, n);
return *this;
}
};
int main()
{
int num[8] = { 1,2,3,4,5,6,7,8 };
int i = compare<int>(num, 8);
double numdou[8] = { 1,2,3,4,5,6,7,8 };
cout<<compare<int>(num,8)<<endl<<compare<double>(numdou,8);
cout << endl;
NUM <int>my_stl;
my_stl(num,8);
cout << endl;
return 0;
}