代码拉取完成,页面将自动刷新
同步操作将从 GodOuO/Code_C++ 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include<iostream>
#include<string>
using namespace std;
/*
实现通用 对数组排序函数
1.从大到小 (降序)
2.选择排序
3.测试,char[] int[]
*/
template <class T>
void Swap(T &a,T &b){
T temp = a;
a = b;
b = temp;
}
template <class T>
void selectSort(T arr[],int len){
for (int i = 0; i < len; i++){
int Max = i; //认定最大值下标
for (int j = i+1 ; j < len; j++){
if (arr[Max] < arr[j]) //认定的最大值 比 便利数据小,说明j下标数据为Max
Max = j; //更新Max下标
}
if (Max != i){ //交换 Max 和 i 下标的元素
Swap(arr[Max],arr[i]);
}
}
}
template<class T>
void printArr(T arr[],int len){
for (int i = 0; i < len; i++)
cout<<arr[i]<<" ; ";
cout<<endl;
}
//普通函数
int Add_N(int a,int b){
return a+b;
}
//函数模版
template <class T>
T Add_abN(T a,T b){
return a+b;
}
void Print(int a,int b)
{
cout<<"Normal Print Func()"<<endl;
}
template<class T>
void Print(T a,T b){
cout<<"Template Print Func()"<<endl;
}
template<class T>
void Print(T a,T b,T c){
cout<<"Template Reload Print Func()"<<endl;
}
void test01(){
char charArr[] = "badcfea";
int len = sizeof(charArr)/sizeof(char);
selectSort(charArr,len);
printArr(charArr,len);
}
void test02(){
int intArr[] = {1,4,4,4,4,3,2,2,2,3,4,5,7,65,412,0};
int len = sizeof(intArr)/sizeof(int);
selectSort(intArr,len);
printArr(intArr,len);
}
void test03(){
int a = 10;
int b = 20;
char c = 'c';
cout<<Add_N(a,b)<<endl;
cout<<Add_abN(a,b)<<endl;
cout<<Add_N(a,c)<<endl; //不做 &的深拷贝, 将a强ascii转97
//cout<<Add_abN(a,c); //自动类型推导,无法统一类型
cout<<Add_abN<int>(a,c)<<endl; //指定类型推导,隐式类型推导
}
void test04(){ //调用规则测试
int a = 10;
int b = 20;
char c1 = 'a';
char c2 = 'b';
Print(a,b); //都可以调用,优先调用普通函数
//如果普通函数没有实现,直接报错不可调用
Print<>(a,b); // 需要通过空模版参数列表, 只强制调用函数模版
Print(a,b,100);
Print(c1,c2); //优先调用 适用的函数模版
}
int main(){
//test01();
//test02();
//test03();
test04();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。