1 //模板 2 template <class T> 3 T getMax(T a, T b) 4 { 5 return a > b ? a :b; 6 } 7 8 9 template<typename T> 10 T MAX(T *p, const int n) 11 { 12 T max = p[0]; 13 for(int i = 1; i < n; i++) 14 { 15 if(max < p[i]) 16 { 17 max = p[i]; 18 } 19 } 20 return max; 21 } 22 23 24 //模板实现参数可变函数 25 template <typename T> 26 T get_sum(T count, T data, ...) 27 { 28 va_list arg_prt; 29 va_start(arg_prt, count); 30 T sum = 0; 31 for(int i = 0; i < count; i++) 32 { 33 sum += va_arg(arg_prt, T); 34 } 35 va_end(arg_prt); 36 return sum; 37 }
下面这个是可变参数模板
1 void showall() //空函数,接口 2 { 3 4 } 5 6 //通用可变参数模板 处理不限定个数的参数,处理不同类型 7 template <typename T, typename...Args> 8 void showall(T value, Args...args) 9 { 10 cout<<"value = "<<value<<" "; 11 showall(args...); 12 }