C 程式設計模板,向量和棧

2021-10-23 16:18:06 字數 2118 閱讀 8583

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...