C 函式模板

2021-09-02 21:33:55 字數 761 閱讀 1010

節省程式設計師的精力了當然是。。。比如寫乙個排序演算法。。。如果不用模板函式的話要像下邊這樣。對每種資料型別都要寫乙個函式。void sort(int data,int n) ; //整型排序void sort(double data,int n); //雙精度型排序void sor(float data ,int n); //浮點型排序……而用模板,只需要寫乙個模板函式就可以了templatevoid sort(t data,int n);

模版算是c++的獨有特性吧,也算是c++中比較難的地方,我平時開發的時候用的非常少,或者幾乎沒有用到,需要模版的地方是能看懂框架中相關的**;

模版函式相對還是很簡單的,引入模版的目的在於**的重用;比如演算法相似,但是由於資料型別不同,我們不得不把同樣的乙份**拷貝兩次,而僅僅是為了修改資料型別,那麼在引入了函式模版之後,我們可以僅僅用乙份**而表示不同過載函式。

下面介紹一下最簡單的函式模版的應用:

template //定義乙個抽象的資料型別t

t mymax(t a, t b) {    //宣告函式模板

return a > b ? a : b; 

int main () {

int  a = 2;

int b = 3;

std::coutfloat d = 3.0f;

std::cout<**在第一次呼叫mymax()函式時,其引數都是int型,則編譯器推導模板引數t為int,編譯器會以函式模板為樣板,以實際型別int代替函式模板中的抽象型別t,自動為這個函式呼叫生成乙個int型別的版本。

c 函式模板

include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...

c 函式模板

關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...

C 函式模板

c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...