c++函数模板的定义和使用方式

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:10:04

给你一个例子吧:
#include <iostream.h>

template <class SomeType>
void Swap (SomeType &a, SomeType &b)
{
SomeType tmp;
tmp = a;
a = b;
b = tmp;
}
template <class SomeType>
void Min(SomeType array[], long size, long start, long ¤tPosition)
{
if( currentPosition - start + 1 < size &&
array[currentPosition] > array[currentPosition + 1]
)
currentPosition = currentPosition + 1;
}

template <class SomeType>
void FilterDown(SomeType array[], long start, long size, long position)
{
long realPosition, relativePosition, offset;
relativePosition = position - start + 1;
offset = 2*relativePosition - 1;
realPosition = start + offset;
while(offset + 1 <= size)
{
Min(array, size, start,realPosition);
if(array[position] > array[realPosition])
Swap(array[realPosi