目录
一、背景
C++模板(Templates)是一种强大的工具,允许我们编写通用的、类型无关的代码。在C++中,模板主要有两种形式:函数模板和类模板。
二、C++模版
2.1、函数模板
函数模板允许我们定义一个函数的通用形式,这个函数可以接受任何类型的参数。以下是一个简单的函数模板示例:
#include <iostream>
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
int main() {
std::cout << "Max of 3 and 7: " << max(3, 7) << std::endl;
std::cout << "Max of 3.5 and 2.1: " << max(3.5, 2.1) << std::endl;
std::cout << "Max of 'a' and 'z': " << max('a', 'z') << std::endl;
return 0;
}
在这个例子中,max模板函数可以用于比较整数、浮点数和字符。
2.2、类模板
类模板允许你定义一个类的通用形式,这个类可以处理不同的数据类型。以下是一个简单的类模板示例:
#include <iostream>
template <typename T>
class Pair {
private:
T first, second;
public:
Pair(T a, T b) : first(a), second(b) {}
T getFirst() const {
return first;
}
T getSecond() const {
return second;
}
};
int main() {
Pair<int> intPair(1, 2);
Pair<double> doublePair(3.14, 2.71);
std::cout << "Int Pair: (" << intPair.getFirst() << ", " << intPair.getSecond() << ")" << std::endl;
std::cout << "Double Pair: (" << doublePair.getFirst() << ", " << doublePair.getSecond() << ")" << std::endl;
return 0;
}
在这个例子中,Pair类模板可以用于存储两个整数或两个浮点数。