c++++ 函數(shù)模板允許您創(chuàng)建可用于多種數(shù)據(jù)類型的函數(shù),從而提高代碼可重用性。語法為:template 函數(shù)名(參數(shù)列表),指定類型參數(shù)即可使用。實戰(zhàn)案例包括在數(shù)據(jù)結(jié)構(gòu)中使用函數(shù)模板,例如可用于任何數(shù)據(jù)類型的棧類:template class stack。
C++ 中如何使用函數(shù)模板
函數(shù)模板是 C++ 中的一種強大特性,它允許您創(chuàng)建可用于多種數(shù)據(jù)類型的函數(shù)。這可以提高代碼的可重用性,并減少重復(fù)代碼的數(shù)量。
函數(shù)模板語法
函數(shù)模板的語法如下:
template <typename T>
函數(shù)名(參數(shù)列表) {
函數(shù)體
}
登錄后復(fù)制
其中 T 是類型參數(shù)。可以有多個類型參數(shù),用逗號分隔。
使用函數(shù)模板
要使用函數(shù)模板,只需在函數(shù)名稱后面指定類型參數(shù)即可。例如,以下代碼聲明了一個計算兩個數(shù)之和的模板函數(shù):
template <typename T>
T sum(T a, T b) {
return a + b;
}
登錄后復(fù)制
現(xiàn)在,您可以將此函數(shù)用于任何數(shù)據(jù)類型,例如:
int x = sum(1, 2); // x 等于 3 double y = sum(1.5, 2.5); // y 等于 4.0
登錄后復(fù)制
實戰(zhàn)案例
以下是一個在數(shù)據(jù)結(jié)構(gòu)中使用函數(shù)模板的實戰(zhàn)案例:
template <typename T>
class Stack {
private:
vector<T> elements;
public:
void push(T element) {
elements.push_back(element);
}
T pop() {
if (elements.empty()) {
throw runtime_error("Stack is empty");
}
T element = elements.back();
elements.pop_back();
return element;
}
};
登錄后復(fù)制
此棧類可以使用任何數(shù)據(jù)類型,例如:
Stack<int> intStack; intStack.push(1); intStack.push(2); cout << intStack.pop() << endl; // 輸出 2 cout << intStack.pop() << endl; // 輸出 1
登錄后復(fù)制
結(jié)論
函數(shù)模板是 C++ 中提高代碼可重用性和減少重復(fù)代碼的強大工具。通過理解函數(shù)模板的語法并使用實戰(zhàn)案例,您可以充分利用這種特性來編寫更靈活且可維護的代碼。






