| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 513 人关注过本帖
标题:关于模板实参推演
取消只看楼主 加入收藏
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
 问题点数:0 回复次数:1 
关于模板实参推演

#pragma warning(disable:4305)
#include<iostream>

using namespace std;

template<typename Type,int size>
Type min(Type (&r_array)[size])
{
Type min_val=r_array[0];
for(int i=1;i<size;i++)
if(r_array[i]<min_val)
min_val=r_array[i];

return min_val;
}

int main()
{
float f[10]={0.3,0.2,0.1,0.4,1.0,0.5,0.6,0.7,0.8,0.9};
int n[5]={1,5,2,3,4};

cout<<min(n);

return 0;
}

错误:
error C2265: '<Unknown>' : reference to a zero-sized array is illegal
error C2784: 'Type __cdecl min(Type (&)[1])' : could not deduce template argument for ' (&)[1]' from 'int [5]'

搜索更多相关主题的帖子: 推演 模板 
2006-04-23 15:39
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
得分:0 
以下是引用gototheworld在2006-4-23 17:45:00的发言:

怎么感觉是摸板写错了,改了一下,你看看是不是你想要的结果,
#pragma warning(disable:4305)
#include<iostream>
using namespace std;
template<typename Type>
Type min(Type *r_array,int size)
{
Type min_val=r_array[0];
for(int i=1;i<size;i++)
if(r_array[i]<min_val)
min_val=r_array[i];

return min_val;
}
int main()
{
float f[10]={0.3,0.2,0.1,0.4,1.0,0.5,0.6,0.7,0.8,0.9};
int n[5]={1,5,2,3,4};
cout<<min(n,5);
return 0;
}


能在不改变我的接口情况下实现么?

2006-04-23 19:21
快速回复:关于模板实参推演
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014846 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved