#include <iostream>
using namespace std;
template <typename T>
void MySwap(T& a,T& b)
{
T t = a;
a = b;
b = t;
}
void run()
{
cout << "int 交换(自动类型推导)" << endl;
int a = 1;
int b = 2;
cout << "a = " << a << ",b = " << b << endl;
MySwap(a,b);
cout << "a = " << a << ",b = " << b << endl;
cout << "float 交换(显式类型推导)" << endl;
float fa = 3.5;
float fb = 4.9;
cout << "fa = " << fa << ",fb= " << fb << endl;
MySwap<float>(fa,fb);
cout << "fa = " << fa << ",fb= " << fb << endl;
}
template<typename T>
void SelectSort(T array[],int length)
{
for(int i=0;i<length;i++)
{
int k = i;
for(int j=i+1;j<length;j++)
{
if(array[k] < array[j])
{
k = j;
}
}
if(k!=i)
{
MySwap(array[i],array[k]); //自动类型推导
}
}
}
void test_1()
{
int array[] = {5,2,3,1,4};
int length = sizeof(array)/sizeof(array[0]);
cout << "All elements: " << endl;
for(int i=0;i<length;i++)
{
cout << array[i] << endl;
}
SelectSort<int>(array,length); //显示类型推导
cout << "After sorting..." << endl;
for(int i=0;i<length;i++)
{
cout << array[i] << endl;
}
}
void test_2()
{
char array[] = {'d','a','c','b','m'};
int length = sizeof(array)/sizeof(array[0]);
cout << "All Elements : " << endl;
for(int i=0;i<length;i++)
{
cout << array[i] << endl;
}
SelectSort<char>(array,length); //显示类型推导
cout << "After sorting..." << endl;
for(int i=0;i<length;i++)
{
cout << array[i] << endl;
}
}
int main()
{
// run();
// test_1();
test_2();
cout << "------end-----" << endl;
return 0;
}
模版函数
最新推荐文章于 2023-11-17 19:15:00 发布
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
3038

被折叠的 条评论
为什么被折叠?



