| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:请高手指点本人在使用函数模板时的不解
只看楼主 加入收藏
naniah
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-9
收藏
 问题点数:0 回复次数:7 
请高手指点本人在使用函数模板时的不解
#include<iostream>
#include<string>
using namespace std;
template<typename T>//模板声明
T swap(T a,T b ,T c)//定义一个通用的从大到小排列的通用函数
{
    T e;
    if(a<b)
    {
        e=a;
        a=b;
        b=e;
    }
    if(a<c)
    {
        e=a;
        a=c;
        c=e;
    }
    if(b<c)
    {
        e=b;
        b=c;
        c=e;
    }
    cout<<a<<"  "<<b<<" "<<c<<endl;
    return 0;
}
int main()
{
    swap(11.0,3.5,0.0);//调用模板函数(1)
    swap("aa","cc","bb");//调用模板函数(2)
    swap(2443,22,223);//调用模板函数(3)
    return 0;
}
/*          为什么调用(2)函数时,各字符串不进行排列呢?      */
搜索更多相关主题的帖子: 函数 模板 
2008-04-09 22:01
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include<iostream>
#include<string>
using namespace std;
template<typename T>//模板声明
void swap(T a[],int n )//定义一个通用的从大到小排列的通用函数
{
    for(int i=0;i<n;i++)
        for(int j=0;j<n-1;j++)
            if(a[j]<a[j+1])
            {   T temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            };
   
    for( i=0;i<n;i++)
        cout<<a[i]<<"\t";
    cout<<endl;
   
}
int main()
{   float a[]={11.0,3.5,0.0};
    string b[]={"aa","cc","bb"};
    double c[]={2443,22,223};
    swap(a,sizeof(a)/sizeof(a[0]));//调用模板函数(1)
    swap(b,sizeof(b)/sizeof(b[0]));//调用模板函数(2)
    swap(c,sizeof(c)/sizeof(c[0]));//调用模板函数(3)
    return 0;
}

学习需要安静。。海盗要重新来过。。
2008-04-09 22:33
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
还是觉得你要把基础弄好...

学习需要安静。。海盗要重新来过。。
2008-04-09 22:34
naniah
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-9
收藏
得分:0 
谢谢了
但是你能为我指点我编的为什么只对字符串不进行排列 对其他类型的数就能呢?
谢了!!
2008-04-10 12:26
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
你知道char * 和string有什么区别吗?
这两个类型的小于运算又是怎样的?
2008-04-10 12:33
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这个要看string有没有把<重载我的msdn可能老了..没找到...或者你可以自己写个类继承于string,用来实现对<重载

学习需要安静。。海盗要重新来过。。
2008-04-10 12:46
xjywc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-1-11
收藏
得分:0 
还是看看标准库的排序方法吧,虽然难,但是应该很有收获的
2008-04-10 20:38
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我觉得lz不急看标准库...sort()理解了用才好

学习需要安静。。海盗要重新来过。。
2008-04-10 20:49
快速回复:请高手指点本人在使用函数模板时的不解
数据加载中...
 
   



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

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