白马长枪飘入诗
2020-12-01 13:44
采纳率: 100%
浏览 192

C++设计一个函数模板,实现两数的交换,并用不同数据类型的数据进行测试

C++设计一个函数模板,实现两数的交换,并用不同数据类型的数据进行测试

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • 不懂了吧 2020-12-01 19:12
    已采纳

    1、利用template来做,其中的T可以为任意数据类型

    2、引用变量,引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量,例如&x=y,x为y的别名。

    #include<iostream>
    using namespace std;
    template<typename T>//T可以为多个类型的数据
    void exchange(T &a,T &b)//C++引用
    {
        T t;//定义T作为交换中介
        t=b,b=a,a=t;//交换
    }
    main()
    {
        int a=4,b=5;
        float c=2.4,d=3.6;
        exchange(a,b);
        cout<<a<<"\t"<<b<<endl;
        exchange(c,d);
        cout<<c<<"\t"<<d;
    }
    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 智者知已应修善业 2020-12-01 16:03

    评论
    解决 无用
    打赏 举报
  • include_iostream_ 2020-12-02 16:34
    namespace usr {
    
    template <typename T>
    void swap(T& a, T& b) requires is_arithmetic_v<T>
    {
    	T t = a;
    	a = b;
    	b = t;
    }
    
    }

    requires是C++20的语法,GCC下需要-fconcepts选项才能编译,它会在编译期检查T是不是数字类型。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题