前言
大家好吖,欢迎来到 YY 滴C++考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
程序1:
- 编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度类型。
//程序1. 编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度类型。 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; template<typename T> T findMax(T arr[], int size) { T max = arr[0]; for (int i = 0; i < size; i++) { if (arr[i] > max) { max = arr[i]; } } return max; } int main() { int arr1[] = { 1,2,3,4,5,6 }; double arr2[] = { 1.1,1.2,1.3,1.4 }; int a = findMax(arr1,6); double b= findMax(arr2, 4); cout << a << endl; cout << b << endl; return 0; }
程序2:
- 编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度型.
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; template <typename T> void bubbleSort(T arr[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size -1- i; j++) { if (arr[j] > arr[j + 1]) { T tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } } template <typename T> void printArray(T arr[], int size) { for (int i = 0; i < size; i++) { cout << arr[i]<<" "; } cout << endl; } int main() { int arr1[] = { 6,1,2,3,4,5}; double arr2[] = { 1.4,1.1,1.2,1.3}; bubbleSort(arr1, 6); bubbleSort(arr2, 4); printArray(arr1, 6); printArray(arr2, 4); return 0; }
程序3:
- 建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; template <typename T> class SumOfThree { public: SumOfThree(T num1, T num2, T num3) : _num1(num1), _num2(num2), _num3(num3) {} T sum() { return _num1 + _num2 + _num3; } private: T _num1,_num2,_num3; }; int main() { SumOfThree<int> intSum(1, 2, 3); SumOfThree<double> doubleSum(1.1, 1.2, 1.3); cout <<intSum.sum() << endl; cout <<doubleSum.sum() << endl; return 0; }
程序4:
- 建立一个用来实现求3个数和的类模板(在类模板外定义各成员函数),并写出调用此类模板的完整程序。
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; template <typename T> class SumOfThree { public: SumOfThree(T num1, T num2, T num3) : _num1(num1), _num2(num2), _num3(num3) {} T sum(); private: T _num1, _num2, _num3; }; template <typename T>//类模板中的函数放在类外进行定义时,需要加模板参数列表 T SumOfThree<T>::sum()//用类型访问 { return _num1 + _num2 +_num3; } int main() { SumOfThree<int> intSum(1, 2, 3); SumOfThree<double> doubleSum(1.1, 1.2, 1.3); cout << intSum.sum() << endl; cout << doubleSum.sum() << endl; return 0; }