cpp-函数模板

    技术2023-11-16  112

    定义:

    方便函数对于不同类型的输入复用

    与普通函数区别

    普通函数 自动进行类型转换、函数模板 严格准守类型匹配当普通函数和函数模板参数同时满足被调用,优先考虑普通函数必须调用模板函数是 函数名<>()调用

    函数模板实现原理

    从函数模板 编译器根据调用函数,分别以函数模板 实现 对应的调用的模板函数

    插入排序案例

    #include <iostream> #include <stdlib.h> using namespace std; template<class T>//template<typename T> void sortAsc(T *arr,int len){ int i=1,j=0,temp=0; if(len <=1){ return; } for(;i<len;i++){ for(;j<len-i;j++){ if(arr[j]>arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } template<class T> void printArr(T *arr,int len){ int i =0; for(;i<len;i++){ cout <<arr[i] << endl; } cout <<"----" << endl; } int main(){ int arr[]={4,1,2,3}; int len = sizeof(arr)/sizeof(arr[0]); printArr(arr,len);//printArr<int>(arr,len);可以不写类型 编译器自行推到 但是类模板必须写 sortAsc(arr,len); printArr(arr,len); system("pause"); }
    Processed: 0.010, SQL: 9