zoukankan      html  css  js  c++  java
  • 通用模板实现可变参数函数

     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 }
  • 相关阅读:
    GitHub入门之一:使用github下载项目
    Android Fragment 真正的完全解析(下)
    Android Fragment 真正的完全解析(上)
    c# 发送邮件
    SmartThreadPool
    虚拟机
    相关系数
    为枚举类型添加说明 zt
    MD5
    hashcode
  • 原文地址:https://www.cnblogs.com/newworldcom/p/4982175.html
Copyright © 2011-2022 走看看