前言
C++ 模板是实现泛型编程的核心工具,允许我们编写与类型无关的代码。这不仅能提高复用性,还能在编译时根据实际类型生成具体代码,避免运行时开销。
一、为什么需要模板?
写函数或类时,如果希望处理多种数据类型(比如 int、double),传统做法是函数重载。但这样会产生大量重复代码,或者丢失类型信息。
场景: 需要一个求最大值的函数,支持 int、double 和 string。
1. 传统方法:函数重载
#include <iostream>
#include <string>
using namespace std;
// 为 int 重载
int max(int a, int b) {
cout << "int version\n";
return a > b ? a : b;
}
// 为 double 重载
double max(double a, double b) {
cout << "double version\n";
return a > b ? a : b;
}
// 为 string 重载
string max(const string& a, const string& b) {
cout << "string version\n";
return a > b ? a : b;
}
int main() {
cout << max(3, 5) << "\n"; // int version
cout << max(, ) << ;
cout << (, ) << ;
;
}


