C 函數模板和泛型程式設計允許建立可接受不同類型資料的通用程式碼,透過類型參數和模板類別實現類型無關性。優點包括程式碼可重複使用性、類型安全性和效能最佳化。透過函數模板(如“print”)和泛型類別(如“Vector”),您可以編寫無類型依賴、高效且可重複使用的程式碼。
C 函數範本和泛型程式設計
簡介
函數範本可讓您建立可接受不同類型資料的通用函數。泛型程式設計進一步擴展了此概念,使您可以編寫類型無關、高效和可重複使用的程式碼。
函數範本
函數範本使用型別參數來表示佔位符資料型別。例如:
template<typename T> void print(T value) { std::cout << value << std::endl; }
此範本函數接受任何資料類型 T
的值並將其列印到控制台。
泛型程式設計
泛型程式將類型參數從函數中分離出來,方法是使用模板類別。例如:
template<typename T> class Vector { public: T* data; int size; Vector() : data(nullptr), size(0) {} ~Vector() { delete[] data; } // ...其他方法... };
這個 Vector
類別可以儲存任何類型的資料元素。
實戰案例
排序向量
下面是一個泛型排序演算法的範例:
template<typename T> void sort(Vector<T>& v) { for (int i = 0; i < v.size - 1; i++) { for (int j = i + 1; j < v.size; j++) { if (v.data[j] < v.data[i]) { std::swap(v.data[i], v.data[j]); } } } }
這個演算法可以為任何類型的向量排序元素。
好處
透過函數模板和泛型編程,您可以編寫更靈活、更健壯和更有效率的 C 程式碼。
以上是C++ 函式模板和泛型編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!