關於C 模板的應用(二)

2021-06-26 07:33:06 字數 767 閱讀 8130

非型別模板引數

一、問題描述;

在實際的操作中,我們往往會面臨乙個尷尬的局面:形參是乙個未知大小的陣列;這就讓和我一樣的菜鳥c/c++尷尬了,為什麼這麼說呢?字串還好說,因為它的結束標誌是'\0';那麼對於別的型別呢?比如說,int型別的陣列;那麼,c++相較於c語言引進了「模板」這個概念,就可以很好的解決這個問題;

二、**;

#include using namespace std;

template void output( int (&a)[n])

cout << endl;

}template void print(const char(&a)[m])

cout << endl;

}int main();

output(a);

print("i love opp c++!");

return 0;

}

三、總結;

除了定義型別引數之外,還可以在模板中定義非型別引數。乙個非型別引數表示乙個值而非乙個型別。我們通過乙個特定的型別名而非關鍵字class或typename來指定非型別引數。

當乙個模板在被例項化時,非型別引數被乙個使用者提供的或者編譯器推斷出的值所代替。這些值必須是常量表示式,從而允許編譯器在編譯時例項化模板。

關於c 模板 一

1.模板的概念。我們已經學過過載 overloading 對過載函式而言,c 的檢查機制能通過函式引數的不同及所屬類的不同。正確的呼叫過載函式。例如,為求兩個數的最大值,我們定義max 函式需要對不同的資料型別分別定義不同過載 overload 版本。函式1.int max int x,int y ...

c 標準模板庫的應用

目前涉及到的模板只有兩種,一種是比較常用的map 另外一種是反轉函式 reverse map map函式具有一對一性質,用於不同型別的對應關係。以下是map函式的基本用法 1 建構函式 mapmap name x為key值,y為value 其中x,y可以是任意型別,如 string,char,int...

C 中模板的應用 上

c 另一種程式設計思想稱為 泛型程式設計 主要利用的技術就是模板 c 提供兩種模板機制 函式模板和類模板。函式模板的意義 建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的型別來代表。includeusing namespace std templatevoid compare...