C 中的模板

2021-08-19 01:54:30 字數 1038 閱讀 7291

1、什麼是模板?

模板是一種不關注輸入、輸出資料型別,只關注資料處理相關演算法實現的程式設計,也稱為泛程式設計。自定義模板是開放人員根據需要設計的模板,其模板的編碼工作由開發人員完成,而標準模板是使用系統自帶的標準模板庫(stl),其模板的實現**不需要自己完成,開放人員可以直接使用。

2、模板定義有何規則?

不管是函式模板還是類模板,在宣告或定義時,只能在全域性命名空間或類範圍內進行。不能在區域性範圍內,不能在函式內(包括main函式)宣告或定義乙個模板。

3、函式模板怎樣定義?

函式模板定義的標準格式:

template

返回型別

函式名函式體

4、類模板怎樣定義?

類模板定義的標準格式:

template

class 類名

6、為什麼模板需要特殊化處理?

模板是乙個通用的樣板程式,不能滿足所有情況,可能存在特殊情況,使定義的模板無法得到預期的結果。

7、什麼是全特化?

模板形參中沒有任何引數,這樣的模板特殊化稱為全特化。

8、什麼是偏特化?

模板的部分形式確定下來了,如:

template

class stack;

模板引數中n的型別是確定的,即stack 模板的部分形參做了特殊化處理。

9、c++的內建標準模板庫分為哪幾種?

·容器(containers)

·迭代器(iterators)

·空間分配器(allocator)

·介面卡(adapters)

·演算法(algorithms)

·仿函式(functors)

10、容器有何共性?

·建構函式

·析構函式

·支援賦值運算子和比較運算子

·交換函式:swap

·插入函式:insert

·刪除函式:erase

·清空函式:clear

·檢視當前容器使用容量函式:size

·檢視容器最大儲存容量函式:size

·檢查容器是否為空函式:empty

C 中的模板

模板 template 利用一種完全通用的方法來設計函式或類而不必預先說明將被使用的每個物件的型別,利用模板功能可以構造相關的函式或類的系列,因此模板也可稱為引數化的型別。在c 語言中,模板可分為類模板 class template 和函式模板 function template 函式模板 通過前面...

C 中的模板

c 中的模板大致分兩類 函式模板和類模板。模板的框架都是在函式前或者類前寫上 template 模板的實質為 將資料型別當引數傳遞,實現資料型別與演算法相分離。函式模板 函式模板 模板函式 函式模板 其呼叫的方式有隱式呼叫,即由編譯器自己推導,和宣告型別如myswap a,b 函式模板的機制 當宣告...

C 中的模板

兩種宣告方式 template template include templatevoid swap t t1,t t2 int main 非型別的函式模板引數 這裡的value就是非型別的模板引數 template t add const t x 格式 template class 類名 非型別的...