C++模板是一種用于創建通用代碼的工具,它可以在不指定特定數據類型的情況下編寫代碼。模板使得可以編寫一個通用的算法或數據結構,可以在不同的數據類型上進行操作。
C++模板主要有兩種類型:函數模板和類模板。
函數模板允許定義一個通用函數,該函數可以在不同的數據類型上進行操作。函數模板的語法如下:
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
在上面的例子中,typename T
表示這是一個類型參數,它可以是任意類型。max
函數可以比較不同類型的參數,并返回較大的值。
類模板允許定義一個通用類,該類可以在不同的數據類型上進行操作。類模板的語法如下:
template <typename T>
class Stack {
private:
T data[100];
int top;
public:
// 構造函數、成員函數等
};
在上面的例子中,typename T
表示這是一個類型參數,Stack
類可以在不同的數據類型上實例化。例如,Stack<int>
是一個只存儲整數的棧,而Stack<double>
是一個只存儲雙精度浮點數的棧。
使用模板時,可以根據需要提供具體的數據類型。例如,可以使用max<int>(a, b)
來調用max
函數并指定參數類型為整數。
模板是C++中非常強大和靈活的特性,它可以增加代碼的可重用性和通用性。但是,在使用模板時需要注意類型推斷、模板特化等概念,以避免出現編譯錯誤或意外的行為。