| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 581 人关注过本帖
标题:函数模板问题
只看楼主 加入收藏
djy5043
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-5-9
收藏
 问题点数:0 回复次数:2 
函数模板问题
编译没有错误但是运行结果不对
问题在我标红色的地方
不知道怎么改
//用冒泡排序法编写一个从小到大排序的函数模板,要求可以用int ,double,char,string,char*等类型数据进行验证
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
template<typename U,int size>
void ebusort(U (&arr)[size])     
{
        U temp;
        for(int i=0;i<size;i++)
                for(int j=0;j<size-i;j++)
                        if(arr[j]>arr[j+1])
                        {
                                temp=arr[j];
                                arr[j]=arr[j+1];
                                arr[j+1]=temp;
                        }
        for(int i=0;i<size;i++)
                cout<<arr<<"  ";
                cout<<endl;
}                              //这个排序模板可以用于int,double,char排序,但是数组的最后一个值输出得不对template<typename U,int size>
void ebusort(string (&arr)[size])     
{
        string temp;
        for(int i=0;i<size;i++)
                for(int j=0;j<size-i;j++)
                        if(arr[j].compare(arr[j+1])>0)
                        {
                                temp=arr[j];
                                arr[j]=arr[j+1];
                                arr[j+1]=temp;
                        }
        for(int i=0;i<size;i++)
                cout<<arr<<"  ";
                cout<<endl;
}                              //想让这个模板特例对string数组排序,但是输入数据之后没有结果输出          
template <typename U,int size>
istream& operator>>( istream & in,U(&arr)[size])   //用模板函数重载输入运算符
{
   cout<<"请分别输入int,char,string型数组:";
   for(int i=0;i<size;i++)
                cin>>arr;
   return in;
}

void main()
{
        int a[10];
        char b[10];
        string c[10];
        cin>>(a);
        cin>>(b);
        cin>>(c);
        ebusort(a);
        ebusort(b);
        ebusort(c);
}
搜索更多相关主题的帖子: 函数模板 int arr include string 
2008-05-05 19:31
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
里面有数组越界和string的打印错误..要转换成.c_str();

学习需要安静。。海盗要重新来过。。
2008-05-05 21:14
djy5043
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-5-9
收藏
得分:0 

改出来了
2008-05-11 11:24
快速回复:函数模板问题
数据加载中...
 
   



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

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