資料結構課程的特點
-專注於資料元素之間的關係
-專注於特定結構之上的演算法
資料結構課程並不關注資料元素的具體型別。
泛型程式設計的概念
-不考慮具體資料型別的程式設計方式
對於swap函式可以考慮下面的泛型寫法
void swap(t& a, t&b)
swap泛型寫法中的t不是乙個具體的資料型別,而是泛指任意的資料型別
c++中的函式模板
-一種特殊的函式可用於不同型別進行呼叫
-看起來和普通函式很相似,區別是型別可被引數化
templatevoid swap(t& a, t&b)
函式模板的語法規則
-template關鍵字用於宣告開始進行泛型程式設計
-typename關鍵字用於宣告泛指型別
函式模板的使用
-自動型別推導呼叫
-具體型別顯示呼叫
int a = 0;int b = 1
;swap(a,b)
//自動推導
float c = 2
;float d = 3
;swap
(c,d) //
顯示呼叫
#include usingnamespace
std;
template
void swap(t& a, t&b)
intmain()
c++中的類模板
-以相同的方式處理不同的型別
-在類宣告前使用template進行標識
-用於說明類中使用的泛指型別t
template classoperator
;
類模板的應用
-只能顯示指定具體型別,無法自動推導
-使用具體型別定義物件
operatorop1;operator
op2;
int i = op1.op(1, 2
);double d = op2.op(0.01, 0.02);
小結:模板是泛型程式設計理論在c++中的實現
函式模板支援引數的自動推導和顯示指定
類模板在使用時只能顯示指定型別
類模板非常適用於編寫資料結構相關的**
泛型程式設計簡介
1 資料結構課程的特點 專注於資料元素之間的關係 專注於特定結構之上的演算法 資料結構課程並不關注資料元素的具體型別 如何為資料結構的學習選擇合適的語言?唐老師經驗 支援泛型程式設計的語言是最適合資料結構課程的學習。2 泛型程式設計的概念 不考慮具體資料型別的程式設計方式。c 中的函式模板 1 一種...
8 泛型程式設計簡介
目錄 1.資料結構的特點 2.泛型程式設計的概念 3.c 中的函式模板 4.函式模板的語法規則 5.函式模板的使用 6.c 中的類模板 7.類模板的應用 8.小結 問題 如何為資料結構的學習選擇合適的語言?經驗分享 支援泛型程式設計的語言最適合資料結構可能得學習?不考慮具體資料型別的程式設計方式 對...
泛型程式設計的簡介
泛型程式設計是一種新的程式設計思想,基於模板技術有效的將演算法和資料結構分離。泛型程式設計是指編寫完全一般化並惡意重複使用的演算法。就是指具有在多種資料型別上皆可操作,在c 上就是使用模板實現。例如 我們要實現各個資料型別的最大值。需要寫如下的函式過載。int max int a,int b flo...