前言
大家好吖,欢迎来到 YY 滴C++考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!
- YY的《C++》专栏
- YY的《C++11》专栏
- YY的《Linux》专栏
- YY的《数据结构》专栏
- YY的《C语言基础》专栏
- YY的《初学者易错点》专栏
- YY的《小小知识点》专栏
- YY的《单片机期末速过》专栏
- YY的《C++期末速过》专栏
目录
- 程序1:
- 程序2:
- 程序3:
- 程序4:
程序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;
}