C++模板(Templates)主要是编写泛型代码,在编译时为不同数据类型生成相应的函数或类实例,主要有函数模板,类模板
函数模板
#include <iostream>
#include <string>using namespace std;template<typename T>
T Total(T a, T b) {return a < b ? b:a;
}int main() {cout << Total(1, 2)<<endl; // 输出2cout << Total(1.1, 2.2)<<endl; // 输出2.2cout << Total("ABC", "BCD")<<endl; // 输出ABCreturn 0;
}
类模版
#include <iostream>
#include <string>
#include <vector>using namespace std;template<class T>
// 也可以使用template<typename T>
class Stack{
private:vector<T> elements;
public:void push(T value){elements.pushback(value)}};int main() {//int类型使用Stack<int> intStack;intStack.push(1);//string类型使用Stack<string> stringStack;stringStack.push("hi");return 0;
}