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");
}

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