zoukankan      html  css  js  c++  java
  • c++知识点总结--函数模板

    通用函数可变参模板

    用于处理不限定参数的函数 
    showall(){//空函数,接口,最后结束递归
    }
    template<typename T,typename... Args>
    void showall(T value,Args ...args){
      cout<<value<<endl;
      showall(args);
    }
    template<typename T,typename ...Args>
    void showall(const T &value,const Args &...args){
    
    }
    //设计可以修改原来的数据  T &value,Args &...args
    //设计不可以修改原来的数据可以修改副本 T value,Args ...args
    //设计不可以修改原来的数据不可以修改副本 const T value,const Args ...args

    函数模板的覆盖

    结构体可以直接赋值,所有成员都是公有的类也可直接赋值
    
    struct info{
    char name[40];
    double db;
    int data;
    }
    template <typename T>
    void     swap(T&a,T&b){
      cout<<"通用函数模板"<<endl;
      T temp=a;
      a=b;
      b=temp;
    }    
    template <>//模板为空,指定类型
    void     swap(info&a,info&b){
      cout<<"特有函数模板"<<endl;
      //根据自己的数据类型进行优化
      T temp=a;
      a=b;
      b=temp;
    }    

    函数模板的重载

    template<typename T>
    void showarray(array<T,10> myarray,int n){
        cout<<"func 1"<<endl;
        for(int i=0;i<n;i++){
            cout<<myarray[i]<<" ";
        }
    }
    void showarray(array<T*,10> myarray,int n){
        cout<<"func 2"<<endl;
        for(int i=0;i<n;i++){
            cout<<*myarray[i]<<" ";
        }
    }    
  • 相关阅读:
    判断输入的字符串是否含有特殊字符和表情
    表单转换为JSON
    重写Alert和confirm方法去除地址显示
    C语言内存管理
    自定义C语言中常用的字符串操作函数
    C语言中定义字符串的几种方式
    WebStorm常用快捷键
    鼠标点击特效
    打印指定年份的日历
    VS code 生成.exe可执行文件失效问题
  • 原文地址:https://www.cnblogs.com/tla001/p/6702047.html
Copyright © 2011-2022 走看看