一、學後感
模板節省了空間,以前乙個函式只能用乙個資料型別來實現,但是現在應用模板後,可以用乙個函式實現多種資料在函式中的應用,節省了時間和空間。
把好幾種資料型別合二為一,可以在主函式中使用合適的資料型別,非常方便
模板是對具有相同特性的函式或類的再抽象,模板是一種引數化的多型***。是一種**共享機制。
用於引數型別不一樣,其功能在本質上完全相同的函式上,寫一段通用**,適用於各種資料型別,**的可重用性大大提高。
我們主要學習了函式模板和類模板,函式模板較為簡單,但類模板的實現有些複雜,類內定義的成員函式的型別需要慎重思考,不能借鑑錯誤;類外的成員函式的定義需要在每一項前加template 《模板形參表》;但具體實現沒什麼差別。
二、筆記
template是模板定義的關鍵字。
《模板形參表》中包含乙個或多個用逗號分開的模板形式引數,每一項均由關鍵字class或typename引導乙個由使用者命名的識別符號,此識別符號為模板引數(用來進行型別傳遞)
定義模板類的物件的格式如下:
類模板名 《實際型別》 物件名(實參表);
1、函式模板
template 《模板形參表》
返回值型別 函式名(參數列)
應用舉例:
求乙個數的絕對值,不論這個數是什麼型別的數,都可以用乙個通用模板表示,只需要重新輸入確定值就可以了。
#includetemplate//模板定義,t為模板引數
t abs(t a)
void main()
類模板中的成員函式的定義,若在類模板之外定義,則成員函式的定義格式如下:
template《模板形參表》
返回值型別 類模板名《形參名錶》::成員函式名(參數列)
應用舉例:
求正方形的面積,用class類實現
#include using namespace std;
template //typename或class
class square
t fun()
}; int main()
模板 基礎資料結構
整理的演算法模板合集 acm模板 head儲存煉表頭,e儲存節點的值,ne儲存節點的next指標,idx表示當前用到了哪個節點 int head,e n ne n idx 初始化 void init 在煉表頭插入乙個數a void insert int a 將頭結點刪除,需要保證頭結點存在 void...
模板 資料結構 Treap
還有人把treap叫做樹堆的,但是常用名還是叫做treap的比較多。不進行任何封裝的,帶求和操作的,乙個節點存放多個元素的最普通的treap。includeusing namespace std typedef long long ll define ls ch id 0 define rs ch ...
資料結構 演算法模板
public double quickmul double x,long n return res const int max n 1e5 5 int par max n 2 int rank max n 2 void init int n int find int x else void unit...