1. 你可以这样定义三个函数
void MySort(double data[],int size);
void MySort(float data[],int size);
void MySort(int data[],int size);
重载是这样的!
int main()
{
double a[10];
float b[10];
int c[10];
//对a,b,c的初始化XXXXXXXXXXXXXXXXXXXXXXX;;
MySort(a,10);
MySort(b,10);
MySort(c,10);
//这里你不用关心a,b,c具体的类型,
//而读你代码的人一眼也可以看出里代码的意思
//不然你得这样写MySort1(a,10);MySort2(b,10);MySort3(c,10);
}
2. 以上的那个data实际上是个指针,也就是说声明也可以是 void MySort(double* data, int size)这样。如果传入的参数类型不是std::vector的话,那就必须知道后面有多少个数字,也就是参数size是必须的。你想我只随机的告诉你内存中的一块,你就能猜到我这个数组是多大? 不可能! 所以写函数的时候你得让调用者把个数size也传进来。
实际上你所说的动态数组和排序,标准模板库(STL)有非常好的支持,鉴于你刚学,就不跟你介绍了,对C++有一定了解后再看效果更好。
温馨提示:内容为网友见解,仅供参考