C++大虾请进,小弟菜鸟,求解一函数模板问题

2024-12-12 10:43:38
推荐回答(2个)
回答1:

主要是你不理解模板使用,模板使用需要有模板参数,按你的题意你这个问题使用格式如下:
Insertion(num,n); // <>里面就是模板参数,另外num已是 T [],再加[]就变成T [][]了
当然这样也行:Insertion(num[],n); // 但这个不合你的题意

另外,你cin>>num[i];,这个num没有初始化就用了,这程序到这就崩溃了,你需要在用它前,给它分配内存,如 cin>>n; num= new int(n); ...
你复制了这个中文(了,把它改成半角,num= new int(n);必须加在cin>>n;后面。

回答2:

#include
using namespace std;
template
void Insertion (T num[],int n)
{
for(int i=1;i {
T t=num[i];
int j;
for(j=i-1;j>=0&&t num[j+1]=num[j];
num[j+1]=t;
}
}

int main()
{
int n, num[100]; //定义数组,不是指针
cin>>n;
for(int i=0;i {
cin>>num[i];
}
Insertion(num,n); //不用[]
system("pause");
return 0;
}