一些常用的容器類模板構建 棧

2021-09-12 01:22:52 字數 1596 閱讀 5661

首先說幾個比較容易混淆的術語

1、函式指標——指標函式

函式指標的重點是指標,表示的是乙個指向函式的指標,例如int (*pf)();指標函式的重點是函式,表示乙個返回指標的函式,例如int* fun();

2、陣列指標——指標陣列

陣列指標的重點是指標,表示乙個指向陣列的指標,例如int (*pa)[8];指標陣列的重點是陣列,表示乙個由指標組成的陣列,例如int* ap[8];

3、類模板——模板類

類模板的重點是模板,表示乙個專門用於產生類的模板,例如

templateclass vector

;

使用這個vector模板就可以產生很多class(類),vector、vector、vector>、vector......

模板類的重點是類,表示由乙個模板生成而來的類,例如上面的vector、vector、......全是模板類。

4、函式模板——模板函式

函式模板的的重點是模板,表示乙個專門用來生產函式的模板,例如

templatevoid fun(t a)

;

在運用時,可以顯式生產模板函式,funfunfun......,也可以在使用的過程中由編譯器進行模板引數推導來隱式生成,例如fun(6);//隱式生成funfun(8.9);、fun('a');、shape* ps = new circle; fun(ps);

模板函式的重點是函式,表示的是由乙個模板生成而來的函式,例如上面顯式或隱式生成的fun、fun......都是模板函式。

模板本身的使用是很受限制的,一般來說,它們就只是乙個產生類和函式的模子。除此之外,運用的領域非常少了,所以不可能有什麼模板指標存在的,即指向模板的指標,這是因為在c++中,模板就是乙個**的**生產工具,在最終的**中,根本就沒有模板本身存在,只有模板具現出來的具體類和具體函式的**存在。類模板還可以作為模板的模板引數使用。

模板的具體實現——如用來處理string物件的棧類—被稱為例項化(instantiation)或具體化(specialization)。

templateclass stack

; type items[max]; //棧的大小固定

int top;

public:

stack():top(0) {};

bool isempty()

bool isfull()

bool push(const type & item);

bool pop(type & item);

};templatebool stack::push(const type & item)

else

return false;

}templatebool stack::pop(type & item)

else

return false;

}

一些常用的容器類模板構建 佇列

templateclass queuetp class node 定義乙個巢狀類node 該建構函式建立了乙個新結點,並將next指標置為空 node front node rear int items 佇列中的元素 const int qsize 佇列的大小 queuetp const queue...

c 模板類(實現棧的一些操作)

之前我寫過一篇c 的模板函式,這篇部落格使用模板函式和模板類實現一下簡易化的棧 模板函式的部落格位址 和定義函式模板一樣,我們可以定義類模板,泛型類宣告的一般形式如下 template class type class class name 然後我們簡單實現一下棧 include include i...

關於一些常用類

包裝類1 string類 string物件嗲表一組不可改變的unicode字串行 string物件變數實際是乙個倡廉物件 常用方法 length 獲取長度 split 分割字串 charat 獲取指定位置的字元 1 replace char oldchar,char newchar 將當前字串物件中...