美文网首页
泛型编程技术(DT_soft session8)

泛型编程技术(DT_soft session8)

作者: 张明亚 | 来源:发表于2018-03-18 21:12 被阅读0次

    数据结构课程的特点:

    --专注于元素之间的算法

    -- 专注于特定结构之上的算法

    如何为数据结构的学习选择合适的语言:

    支持泛型编程的语言最适合

    泛型编程:

    --不考虑数据具体类型的编程方式

            对于swap的函数可以考虑下面的写法:

    template: 告诉编译器开始泛型编程

    typename: 告诉编译器T是类型

    模板的使用

    自动推倒调用

    具体类型显示调用

    int a = 0;

    int b = 1;

    swap(a, b);

    float c = 2;

    float d = 3;

    swap<float>(c, d);

    编程实验

    #include

    using namespace std;

    template

    void Swap(T& a, T& b)

    {

        T t = a;

        a = b;

        b = t;

    }

    int main()

    {

        int a = 1;

        int b = 2;

        Swap(a, b);

        cout << "a = " << a << " b = " << b << endl;

        double c = 0.2;

        double d = 0.5;

        Swap(c, d);

        cout << "c = " << c << " d = " << d << endl;

        return 0;

    }

    C++中的类模板

    类魔板的定义

    类模板的使用

    只能显示指定具体的类型,无法自动推倒

    使用具体的<Type> 定义对象

    operator<int> op1;

    operator<double> op2;

    int i = op1.op(1,2);

    double d = op2.op(0.01, 0.02);

    编程实验

    #include

    using namespace std;

    template

    void Swap(T& a, T& b)

    {

        T t = a;

        a = b;

        b = t;

    }

    template

    class Op{

    public:

        T process(T v)

        {

            return v*v;

        }

    };

    int main()

    {

        Op opInt;

        Op opDouble;

        cout << "5 * 5 = " << opInt.process(5) << endl;

        cout << "0.3 * 0.3 = " << opDouble.process(0.3) << endl;

        return 0;

    }

    小结:

    模板是 泛型编程理论在c++中的实现

    函数模板支持参数的自动推导和显示指定

    类模板在使用时只能显示指定类型

    类模板非常适用于编写数据结构相关代码

    相关文章

      网友评论

          本文标题:泛型编程技术(DT_soft session8)

          本文链接:https://www.haomeiwen.com/subject/dgdyqftx.html