C++ 模板
template<typename T> 泛型编程 · 难度:高级 · +20XP
C++ 模板 — 泛型编程基石
模板让你写适用于任意类型的代码。编译器根据使用场景自动生成对应类型的版本(编译时多态)。
函数模板
template
T maxValue(T a, T b) { return a > b ? a : b; }
cout << maxValue(10, 20) << endl; // int 版本
cout << maxValue(3.14, 2.72) << endl; // double 版本
cout << maxValue(string("ab"), string("ac")) << endl; // string 版本
类模板
template
class Stack {
vector data;
public:
void push(T v) { data.push_back(v); }
T pop() { T v = data.back(); data.pop_back(); return v; }
};
Stack intStack;
Stack strStack;
模板特化
template<> class Stack { /* bool 专用优化版本 */ };