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; // 输出2
cout << Total(1.1, 2.2)<<endl; // 输出2.2
cout << Total("ABC", "BCD")<<endl; // 输出ABC
return 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;
}