c++里相似函数体对应不同数据类型如何简化?

int insert(int a[],int n,int w)
{
	int i,j;
	for(i=0;i<n;i++)
		if(w<=a[i])
			break;
	for(j=n;j>i;j--)
		a[j]=a[j-1];
	a[i]=w;
	for(i=0;i<=n;i++)
		cout<<a[i]<<' ';
	cout<<endl;
	return 0;
}
float insert(float a[],int n,float w)
{
	int i,j;
	for(i=0;i<n;i++)
		if(w<=a[i])
			break;
	for(j=n;j>i;j--)
		a[j]=a[j-1];
	a[i]=w;
	for(i=0;i<=n;i++)
		cout<<a[i]<<' ';
	cout<<endl;
	return 0;
}

这段代码在主函数重载根据输入的数据类型选择不同的字段,有没有什么方法让insert(*** a[],int n, *** w)里的数据类型根据输入时的结果自动替换“***”?



慕粉1469495933
浏览 1018回答 2
2回答

onemoo

如果只有 int 和 float这两种类型变化,你可以像你这样重载函数。如果有更多的变体,那可以用函数模板来简化。

qq_陌上桑_0

我最近也在考虑这个,我觉得这个答案并不能解决问题,我只想问,在c++中,这么能用一个变量可以接受3和3.0两种数据类型,这个变量该怎么定义还是不定义?Python中可以,因为他弱化数据类型,而Python又是用c写的,所以应该也能行,也么做呢?
打开App,查看更多内容
随时随地看视频慕课网APP