C++ 模板編程是一種強大的編程技巧,它允許程序員編寫與數據類型無關的代碼。模板可以用于創建泛型數據結構和函數,從而提高代碼的復用性和靈活性。C++ 模板編程主要涉及以下兩個方面:類模板和函數模板。
template
開始,后跟尖括號內的模板參數列表。例如,以下代碼定義了一個簡單的泛型 Vector
類模板:template <typename T>
class Vector {
public:
Vector() {}
~Vector() {}
void push_back(const T& value) {
data.push_back(value);
}
T get(int index) const {
return data[index];
}
private:
std::vector<T> data;
};
在這個例子中,T
是一個模板參數,表示向量中存儲的數據類型。你可以使用不同的數據類型實例化這個類模板,如 Vector<int>
、Vector<float>
等。
template
后跟尖括號內的模板參數列表。例如,以下代碼定義了一個簡單的泛型 swap
函數模板:template <typename T>
void swap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}
在這個例子中,T
是一個模板參數,表示要交換的數據類型。你可以使用不同的數據類型調用這個函數模板,如 swap<int>(a, b)
、swap<std::string>(str1, str2)
等。
C++ 模板編程的應用場景包括: