cpp-函数模板

定义:

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

与普通函数区别

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

函数模板实现原理

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

插入排序案例

#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);
	
	sortAsc(arr,len);
	printArr(arr,len);
	system("pause");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章