前言
欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!
- YY的《C++》专栏
- YY的《C++11》专栏
- YY的《Linux》专栏
- YY的《数据结构》专栏
- YY的《C语言基础》专栏
- YY的《初学者易错点》专栏
- YY的《小小知识点》专栏
- YY的《单片机期末速过》专栏
- YY的《C++期末速过》专栏
- 编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度类型。
//程序1. 编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度类型。
#define _CRT_SECURE_NO_WARNINGS 1
#include
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;
}
- 编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度型.
#define _CRT_SECURE_NO_WARNINGS 1
#include
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个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
#define _CRT_SECURE_NO_WARNINGS 1
#include
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;
}
- 建立一个用来实现求3个数和的类模板(在类模板外定义各成员函数),并写出调用此类模板的完整程序。
#define _CRT_SECURE_NO_WARNINGS 1
#include
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;
}