資料結構(二)模板

2021-09-27 08:10:11 字數 1045 閱讀 7955

一、學後感

模板節省了空間,以前乙個函式只能用乙個資料型別來實現,但是現在應用模板後,可以用乙個函式實現多種資料在函式中的應用,節省了時間和空間。

把好幾種資料型別合二為一,可以在主函式中使用合適的資料型別,非常方便

模板是對具有相同特性的函式或類的再抽象,模板是一種引數化的多型***。是一種**共享機制。

用於引數型別不一樣,其功能在本質上完全相同的函式上,寫一段通用**,適用於各種資料型別,**的可重用性大大提高。

我們主要學習了函式模板和類模板,函式模板較為簡單,但類模板的實現有些複雜,類內定義的成員函式的型別需要慎重思考,不能借鑑錯誤;類外的成員函式的定義需要在每一項前加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...