通过之前对于模板的介绍,我们可以对模板进行一些实际操作。
如果想要将一个数组通过冒泡排序按照从小到大的顺序排列,可编译出如下代码。
#include<iostream>
using namespace std;
void Bubble(int a[],int size)
{
for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size -1- i; j++)
{
if(a[j]>a[j+1])
{
int temp = a[j];
a[j] =a[j + 1];
a[j+1] = temp;
}
}
}
}
int main()
{
int arr[5] = { 5,1,2,3,6 };
int size = sizeof(arr) / sizeof(arr[0]);
Bubble(arr,size);
for (int i = 0; i < 5; i++)
{
cout << "arr[" << i << "] =" << arr[i] << endl;
}
cout << endl;
return 0;
}
然后只需要对这段代码进行修改即可。
在Bubble函数中,数组参数a[ ]设置为int,为简化说明,数值长度在这里手动传参。只需要将arr数组存储的数据类型更改为模板即可灵活创建arr数组。
#include<iostream>
using namespace std;
template <typename T>
void Bubble(T a[],int size)
{
for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size -1- i; j++)
{
if(a[j]>a[j+1])
{
T temp = a[j];
a[j] =a[j + 1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[] = { 5,1,2,3,6 };
double b[] = { 3.14,2.12,1.13,0.45 };
int size_a = sizeof(a) / sizeof(a[0]);
int size_b= sizeof(b) / sizeof(b[0]);
Bubble(a,size_a);
Bubble(b,size_b);
for (int i = 0; i < size_a; i++)
{
cout << "a[" << i << "] =" << a[i] << endl;
}
cout << endl;
for (int i = 0; i < size_b; i++)
{
cout << "b[" << i << "] =" << b[i] << endl;
}
cout << endl;
return 0;
}