1. 模板基礎
模板功能提供了在函式和類中將型別作為引數的能力,可以設計具有通用型別的函式和類,而編譯
器可在編譯時將通用型別確定為一種特定型別
//乙個求最大值的通用模板
generictype maxvalue
(generictype value1,generictype value2)
else
return value2;
}# include
# include
using
namespace std;
template
<
typename t>
//一定要有typename或class,也被稱為模板字首,推薦用typename
t maxvalue
(t value1,t value2)
else
return value2;
}//字串比較,比較的是指向字串的位置
3. 乙個通用的排序函式
template
<
typename t>
void
sort
(t list,
int size)}if
(currentminindex != i)}}
//列印通用函式
template
<
typename t>
void
printarr
(const t list,
int size)
cous << endl ;
}
4. 模板類
可以實現具有通用型別的類
對於模板類,定義和實現放在乙個檔案裡更為安全
#ifndef stack_h
#define stack_h
template
<
typename t >
//t= int>//預設型別為int,預設型別只用於模板類》
class
stack
//賦予陣列容量
template
<
typename t>
stack<
>
::stack()
template
<
typename t>
bool stack<
>
::empty()
const
template
<
typename t>
t stack<
>
::peek()
const
template
<
typename t>
stack<
>
::push
(t value)
template
<
typename t>
t stack<
>
::pop()
template
<
typename t>
int stack<
>
::getsize()
const
#endif
5. c++向量類
提供了通用類vector,可用於儲存物件列表
vector vectorname;
其中包含較多用法
6. 用vector代替陣列
向量可以用來替換陣列,且比陣列更靈活,但陣列更為高效
二維陣列的向量表示
vectorint>
>
vectorname
(size)
;
C 向量vector和模板的應用
c 裡面的vector提供了對array list的操作功能,如下 演示了如何建立vector並進行增加元素 查詢元素 刪除元素 列舉元素,還演示了如何應用模板 template 來實現通用資料的vector列印.define crtdbg map alloc include include inc...
C 棧類模板
template class stack 模板的實現 template stack stack top 1 建構函式,棧頂初始化為 1 template void stack push const t item template t stack pop template const t stack ...
棧和佇列(模板)
陣列模擬棧 include using namespace std const int n 100010 int stk n tt 插入 stk tt x 彈出 tt 判斷棧是否為空 if tt 0 not empty else is empty 棧頂 stk tt 陣列模擬佇列 include u...